[英]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.