我試圖通過將一個分區的總和轉換爲普通的sql語句,但代碼無法工作。技術:SQL服務器2014T-SQL-與分組結合使用分組的總和
下面的代碼:
select
ZABF$,ZUNR$,ZONR$,FPLN$,ZSTR$,right(left(GABS$,3),2) as Region
,SUM(Nettobetrag) AS NettoUmsatz
,SUM(BRUTTOBETRAG) AS BruttoUmsatz
,SUM(Nettobetrag) over (partition by ZABF$,ZUNR$,ZONR$,FPLN$,right(left(GABS$,3),2))
from
ArchivZBEW.PROD.sFCTS_G195
where
NETTOBETRAG<>0 and right(left(GABS$,3),2)<>'65'
and UTYP$ in('K','M','P')
group by
ZABF$,ZUNR$,ZONR$,FPLN$,ZSTR$,right(left(GABS$,3),2)
正如你所看到的,我試圖讓輸出在第一行中的所有列,然後不同的總和。 NettoUmsatz和Bruttoumsatz工作正常,如預期 - 但現在我需要另一個忽略「ZSTR $」字段的總和。我把這個查詢作爲CTE的一部分,所以在這個語句中使用它會很好,否則我必須加入表格兩次,語句變得非常慢。
錯誤碼:(德文):
模具ArchivZBEW.PROD.sFCTS_G195.NETTOBETRAG-Spalte IST在DER Auswahllisteungültig,噠SIE nicht在einer Aggregatfunktion UND nicht在DER GROUP BY-Klausel enthalten IST。
感謝谷歌翻譯:因爲它不是在聚合函數,幷包含在GROUP不包含BY子句
的archiveZBEW.PROD.sFCTS_G195.NETTOBETRAG列是在選擇列表中無效。
我沒看見GROUP BY'的要點請顯示樣本數據和預期結果,以使問題更清晰。 –
Deutsche Fehlermeldungen bedeuten nichtsfürenglische Leser。 archiveZBEW.PROD.sFCTS_G195.NETTOBETRAG列在選擇列表中無效,因爲它不包含在聚合函數中,並且不包含在GROUP BY子句中。順便說一句,我甚至不會說德語。 –