我如何在SQL中的having子句中使用sum的总和

时间:2014-04-24 11:06:55

标签: sql sql-server

这是我的sql代码,问题在于HAVING子句,我试图使用别名但是,它没有工作有人告诉我SQL Server没有在HAVING子句或WHERE子句中使用别名的功能,所以我尝试使用这个,但它也不起作用。

我需要你的帮助。

这是我的SQL代码:

SELECT
   LEFT(RSTab1.EventstartDate,6) MONTHtab1
   ,LEFT(RSTab2.EventstartDate,6) MONTHtab2
   ,RSTab1.TigoMainNumber
   ,(SUM(RSTab2.RevenueRWF)+SUM(RSTab1.Revenue)) Total_RevenueSUM
INTO 
   Subscriber_ALLshared_revenue
FROM 
   DWHAUX1.[SubscriberBase].[dbo].[CDRSubscriber_Revenue] AS RSTab1 WITH(NOLOCK) 
INNER JOIN 
   DWHAUX1.CDRNOrmal.dbo.nrmMSC RSTab2 WITH(NOLOCK) ON RSTab1.TigoMainNumber = RSTab2.CalledPartyNumber
WHERE 
   LEFT(RSTab1.EventstartDate,6) BETWEEN 201310 AND 201403 
   OR LEFT(RSTab2.EventstartDate,6) BETWEEN 201310 AND 201403 
   AND SUM(SUM(RSTab2.RevenueRWF) + SUM(RSTab1.Revenue)) > 680
GROUP BY 
   LEFT(RSTab1.EventstartDate, 6)
   ,LEFT(RSTab2.EventstartDate, 6)
   ,RSTab1.TigoMainNumber
HAVING 
   SUM(SUM(RSTab2.RevenueRWF) + SUM(RSTab1.Revenue)) > 680
ORDER BY 
   COUNT(*) DESC

1 个答案:

答案 0 :(得分:0)

SELECT * FROM
(
    SELECT  LEFT(RSTab1.EventstartDate,6) MONTHtab1
       ,LEFT(RSTab2.EventstartDate,6) MONTHtab2
       ,RSTab1.TigoMainNumber
       ,(SUM(RSTab2.RevenueRWF)+SUM(RSTab1.Revenue)) as Total_RevenueSUM
       ,COUNT(*) as countRevenue



    FROM DWHAUX1.[SubscriberBase].[dbo].[CDRSubscriber_Revenue]AS RSTab1 WITH(NOLOCK) 
    INNER JOIN DWHAUX1.CDRNOrmal.dbo.nrmMSC RSTab2 WITH(NOLOCK) 
    ON  RSTab1.TigoMainNumber= RSTab2.CalledPartyNumber
    WHERE LEFT(RSTab1.EventstartDate,6) BETWEEN 201310 AND 201403 
    OR LEFT(RSTab2.EventstartDate,6) BETWEEN 201310 AND 201403 
    GROUP BY LEFT(RSTab1.EventstartDate,6)
            ,LEFT(RSTab2.EventstartDate,6)
            ,RSTab1.TigoMainNumber
) as Z
WHERE Total_RevenueSUM >680
ORDER BY countRevenue DESC