2015-04-17 4 views
-1

У меня есть данные, как: Мой стол enter image description hereКак повернуть и получить общую сумму каждый месяц

Мои окончательные результаты должны быть такими:

enter image description here

My 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:

enter image description here

Как я могу изменить заявление, чтобы получить столбцы сумма агрегации?

+0

Это даже не стержень. Это просто GROUP BY –

ответ

1

Я полагаю, вы можете просто обернуть свой запрос внутри другого оператора select, а затем использовать GROUP BY. Что-то вроде этого:

SELECT Month, SUM(ISNULL(column_name,0)) 
FROM (Your Query in here) 
GROUP BY Month 
+0

Можете ли вы дать дополнительную информацию или можете отредактировать мой запрос на том уровне, который, по вашему мнению, может помочь? – mikybrain

0

Не уверен, что я понимаю суть PIVOT в вашем исходном запросе. Это похоже на типичный агрегат - это все, что требуется. Посмотрите, если это то, что вам нужно.

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) 
+0

Невозможно суммировать на этом уровне, потому что это nvarchar. Тип данных 'sum (случай, когда [Zu-, Abgang] = 'Zugänge' тогда [Zu-, Abgang] else 0 end) как ошибка Zugänge'а 245 – mikybrain

+0

Ну, мы не знаю, как выглядят ваши столы, потому что вы их не публиковали. Можете ли вы использовать его как int? –

+0

Я улучшил свое заявление – mikybrain

Смежные вопросы