这是我的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
答案 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