簡體   English   中英

為什么我在分組依據中收到無效的列名錯誤?

[英]Why am I getting invalid column name error in group by?

我正在嘗試提出這個要求。 我添加了分組依據,因為我有重復項。 我收到錯誤:

分組依據中列的列名稱無效。

我已經閱讀了很多關於此類錯誤的帖子,但我仍然被卡住了。 我也想知道我是否應該使用sum() 請幫助。

INSERT INTO tabA
       ([load_number]
        ,[load_date]
        ,[no_command]
        ,[no_document]
        ,[id_transc]
        ,[division_cd]
        ,[activity_cd]
        ,[project_cd])
 
select 1 [load_number]
      ,getdate() [load_date]
      ,'' [no_command]
      ,'' [no_document]
      ,coalesce(c.id_numb,-1) [id_transc]
      ,coalesce(b.elem_cd,-1) [division_cd]
      ,coalesce(d.budget_cd,-1) [activity_cd]
      ,'' [project_cd]

from tabB b

   left join tabC c on c.credit = b.account
   left join tabD d on d.activity = SUBSTRING([b.name],CHARINDEX('-',[b.name])+1,LEN([b.name])) and d.transc = '1010'


    group by [load_number]
            ,[load_date]
            ,[no_command]
            ,[no_document]
            ,[id_transc]
            ,[division_cd]
            ,[activity_cd]
            ,[project_cd]

如果您擔心重復,您可以使用select distinct

select distinct 1 [load_number],
       getdate() [load_date],
       '' [no_command],
       '' [no_document],
       coalesce(c.id_numb,-1) [id_transc],
       coalesce(b.elem_cd,-1) [division_cd],
       coalesce(d.budget_cd,-1) [activity_cd],
       '' [project_cd]
from tabB b left join
     tabC c
     on c.credit = b.account left join
     tabD d
     on d.activity = SUBSTRING([b.name],CHARINDEX('-',[b.name])+1,LEN([b.name])) and d.transc = '1010';

您不能在 SQL Server 的group by中使用select中定義的列別名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM