且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在sql查询中选择语句

更新时间:2022-05-03 04:35:55

尝试使用 CASE [ ^ ]声明。

这里是一个样本

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 --....



自您正在使用聚合函数,您还需要使用 GROUP BY(Transact-SQL) [ ^ ]