簡體   English   中英

錯誤:列名不明確

[英]Error: Ambiguous column name

為什么會出現此錯誤?

信息209,第16級,州1,第94行
列名不明確,“新值”。

查詢:

SELECT  
    aho2.[Control Number] AS [Control Number],
    STUFF((SELECT '; ' + [Old Value] as [text()] 
           FROM #AuditHistoryOutput aho1 
           WHERE [aho1].[Control Number] = [aho2].[Control Number] 
           FOR XML PATH('')), 1, 1, '') [Unset Choice Value],
    STUFF((SELECT '; ' + [New Value] as [text()] 
           FROM #AuditHistoryOutput aho2, #AuditHistoryOutput aho1
           WHERE [aho1].[Control Number] = [aho2].[Control Number] 
           FOR XML PATH('')), 1, 1, '') [Set Choice Value]
FROM 
    #AuditHistoryOutput aho2

您使用aho2表別名兩次將其中一個引用更改為其他內容

看起來您正在將行的字符串轉換為半冒號分隔的字符串。 但是,如果您在第二個填充語句中查找,則使用表別名aho2,然后在最后一個表引用中再次使用它。 因此,這2個引用之一需要更改,否則sql-server不知道您引用的是哪個。

但是,現在看來,您在第二個select語句中還存在一個問題,即由於隱式連接語法和指定表兩次而指定了交叉連接。 我的猜測是您不希望這是一種可能會得到您想要的方法(猜測),但是如果沒有,您應該使用架構,示例數據和所需結果來更新您的問題,以便我們可以更有效地為您提供幫助。

SELECT 
    aho3.[Control Number] AS [Control Number]
    ,STUFF(
       (SELECT '; '+[Old Value] as [text()]
       FROM #AuditHistoryOutput aho1
       WHERE [aho1].[Control Number] = aho3.[Control Number]
       FOR XML PATH(''))
       , 1, 1, '') [Unset Choice Value]
    ,STUFF(
       (SELECT '; '+[New Value] as [text()]
       FROM #AuditHistoryOutput aho2
       WHERE [aho2].[Control Number] = aho3.[Control Number]
       FOR XML PATH(''))
       , 1, 1, '') [Set Choice Value]
FROM #AuditHistoryOutput aho3

“模棱兩可的列名”表示您有兩個名稱相同的表,而未指定所需的表。 因此,您選擇列表中的[aho1].[New Value][aho2].[New Value]代替了[New Value]將消除此錯誤。 無法保證您的查詢將起作用。

暫無
暫無

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

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