如何转动,并得到总金额每个月
问题描述:
我有这样的数据: 我的表 如何转动,并得到总金额每个月
我的最终结果应该是这样的:
我的SQL语句:
SELECT 'Q'+cast([Month_Quarter] as varchar) Month_Quarter,COALESCE([Zugänge],0) Zugänge,COALESCE([Abgänge],0) Abgänge
FROM
(
SELECT DATEPART(QUARTER,[Monat]) [Month_Quarter],
[Zu-, Abgang],
Count(DISTINCT [Projektdefinition DB]) NoProjects
FROM AbZugänge
GROUP BY DATEPART(QUARTER,[Monat]), [Zu-, Abgang]
) proj
PIVOT (SUM(NoProjects) FOR [Zu-, Abgang] IN (Zugänge, Abgänge)) As pvt
WHERE [Month_Quarter] is not null
ORDER BY Month_Quarter
但与此声明我得到的结果没有金额栏Zugang和列Abgang:
我怎么能编辑得到聚集量列的声明?
答
我想你可以把你的查询包装在另一个select语句中,然后使用GROUP BY。这样的事情:
SELECT Month, SUM(ISNULL(column_name,0))
FROM (Your Query in here)
GROUP BY Month
+0
您可以提供更多信息,或者您可以在您认为可能有所帮助的级别编辑我的查询吗? – mikybrain
答
不知道我明白你的原始查询中的枢轴点。这看起来像一个典型的聚合是所需要的。看看这是你需要的。
SELECT DATENAME(MONTH,Monat) [Month]
, sum(case when [Zu-, Abgang] = 'Zugänge' then [Zu-, Abgang] else 0 end) as Zugänge
, SUM(case when [Zu-, Abgang] = 'Abgänge' then [Zu-, Abgang] else 0 end) as Abgänge
, SUM([GWU aktuell]) as [GWU Total]
, SUM([GWU Planung aktuell]) AS [Plan Total]
, COUNT(DISTINCT [Projektdefinition DB]) NoProjects
FROM AbZugänge
group by DATENAME(MONTH,Monat)
这甚至不是一个关键。这是一个简单的GROUP BY –