小编Man*_*elN的帖子

T-SQL-与分组相结合,与group by结合使用

我试图通过正常的sql语句获得分区的总和,但代码将无法正常工作.技术:SQL Server 2014

这是代码:

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)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我尝试获得第一行中所有列的输出,然后是不同的总和.NettoUmsatz和Bruttoumsatz工作得很好,就像预期的那样 - 但现在我需要另一个忽略"ZSTR $"字段的总和.我把这个查询作为CTE的一部分,所以在这个语句中使用它会很好,否则我必须加入表两次并且语句变得很慢.

ErrorCode :(德语):

Die ArchivZBEW.PROD.sFCTS_G195.NETTOBETRAG-Spalte ist in derAuswahllisteungültig,da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.

感谢谷歌翻译:

archiveZBEW.PROD.sFCTS_G195.NETTOBETRAG列在选择列表中无效,因为它不包含在聚合函数中,并且不包含在GROUP BY子句中.

sql t-sql sql-server

2
推荐指数
1
解决办法
2739
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1