每个 group by 表达式必须至少包含一列不是外部引用 - On Turk colition

问题描述 投票:0回答:1

我收到此错误

每个 group by 表达式必须至少包含一列不是外部引用

我正在将日期插入临时表,错误出现在以下按查询分组(仅在某些排序规则上)

insert into @Temp(Name, ID)
   select 
      USR.Name,
      ISNULL((SELECT SUM(BCR.QUANTITY) 
              FROM Rate BCR            
              WHERE BCR.RateID = USR.RateID 
              GROUP BY USR.RateID), 0) AS TotalQuantity
   from 
      dbo.User as USR
   where 
      USR.Status = 1
sql sql-server sql-server-2008
1个回答
1
投票

您有一个相关子查询,其中 USR.RateID 来自外部查询。由于您在 where 子句中使用 USR.RateID,因此您可以删除 GROUP BY 子句,因为每次调用子查询时 USR.RateID 只会有一个值。

insert into @Temp(Name, ID)
   select 
      USR.Name,
      ISNULL((SELECT SUM(BCR.QUANTITY) 
              FROM Rate BCR            
              WHERE BCR.RateID = USR.RateID), 0) AS TotalQuantity
   from 
      dbo.User as USR
   where 
      USR.Status = 1
© www.soinside.com 2019 - 2024. All rights reserved.