Try using
CASE[
^] statement.
here is a sample
SELECT dg.DestinationGroupName AS Destination, c.CarrierShortName AS Carrier,
SUBSTRING(CONVERT(VARCHAR(11), ba.CDRDate, 106), 4, LEN(CONVERT(VARCHAR(11),ba.CDRDate, 106))) AS Month,
CASE WHEN DatePart(ba.CDRDate) = DatePart(getdate()) THEN SUM(ba.TotalDuration) / 60
ELSE SUM(ba.TotalDuration) / 60 * 31 END AS DurationInMinutes,
CASE WHEN DatePart(ba.CDRDate) = DatePart(getdate()) THEN SUM(ba.TotalCost)
ELSE SUM(ba.TotalCost) / 31 END AS TotalRevenue,
CASE WHEN DatePart(ba.CDRDate) = DatePart(getdate()) THEN SUM(av.AvgCost * ba.TotalDuration)
ELSE SUM(av.AvgCost * ba.TotalDuration) / 31 END AS TotalCost,
SUM(ba.TotalCost) - SUM(av.AvgCost * ba.TotalDuration) AS Margin
FROM
Since you are using aggregate functions you will also need to use
GROUP BY (Transact-SQL)[
^]