sql-server - SQL Server 上的“无法对聚合或子查询执行聚合函数”错误

标签 sql-server

Select A.nEvrakKalemID As ID, 
  A.cEvrakKalem As [Inventory Name],
  SUM((IsNull((Select SUM(B.nMiktar) Where B.nEvrakTip = 3 or B.nEvrakTip = 7),0)) - (IsNull((Select SUM(B.nMiktar) Where B.nEvrakTip = 4 or B.nEvrakTip = 8),0))) As Inventory
From MasrafAnaliz.dbo.EvrakKalem A 
Left Outer Join MasrafAnaliz.dbo.EvrakKalemHareket B
On B.nKodEvrakKalem = A.nEvrakKalemID
Group By A.nEvrakKalemID, A.cEvrakKalem, B.nMiktar
Order By A.nEvrakKalemID

在上面的问题中,我想总结Inventory列,并根据nEvrakKalemID列对其进行分组。 但它不起作用。预先感谢您的帮助。

最佳答案

试试这个:

Select A.nEvrakKalemID As ID, 
       A.cEvrakKalem As [Inventory Name],
       (SUM(CASE  WHEN B.nEvrakTip = 3 or B.nEvrakTip = 7 
                  THEN (IsNull(B.nMiktar,0))
                  ELSE 0
            END) -
        SUM(CASE WHEN B.nEvrakTip = 4 or B.nEvrakTip = 8
                 THEN IsNull(B.nMiktar,0)
                 ELSE 0
            END)) As Inventory
From MasrafAnaliz.dbo.EvrakKalem A 
Left Outer Join MasrafAnaliz.dbo.EvrakKalemHareket B On B.nKodEvrakKalem = A.nEvrakKalemID
Group By A.nEvrakKalemID, A.cEvrakKalem, B.nMiktar
Order By A.nEvrakKalemID

关于sql-server - SQL Server 上的“无法对聚合或子查询执行聚合函数”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43250093/

相关文章:

sql-server - 在运行时以编程方式创建 sql server 数据库

SQL WHERE 和 AND 不返回值

sql-server - 向 ISS/SSAS 发出 XMLA/DAX 请求

sql - 存储过程: reduce code duplication using temp tables

sql-server - 使用重复的 SQL Server 数据库进行查询

c# - 需要帮助以使用交易范围

sql - 如何中止触发器中多行的插入

c# - SQL Server - 重用以前的查询 - 与 Linq 类似的逻辑

sql-server - 新手 - 使用 CAST() 和 CONVERT() 时出错

sql - 查询以从按一个字段分组的动态表中获取最后插入的行