2017-10-08 109 views
0

我有一个执行SQL 我执行它给我一个错误不明确的列名“salesYTD” 我的发言是任何时候的烦恼:SQL错误:不明确的列名

SELECT COUNTRYREGIONCODE, NAME, AVG(SALESQUOTA),AVG(BONUS), AVG(SALESYTD) 
FROM SALES.SALESPERSON SP 
INNER JOIN SALES.SALESTERRITORY ST 
ON SP.TERRITORYID = ST.TERRITORYID 
GROUP BY NAME, COUNTRYREGIONCODE; 

该列的名称是否正确。我不明白我做错了什么。感谢您的帮助

回答

1

这意味着SALESYTD在两个表中。我不知道你想要什么。

当您在查询中有多个表格时总是限定您的列名称。

SELECT ST.NAME, ST.COUNTRYREGIONCODE, 
     AVG(SP.SALESQUOTA), AVG(SP.BONUS), AVG(SP.SALESYTD) 
FROM SALES.SALESPERSON SP INNER JOIN 
    SALES.SALESTERRITORY ST 
    ON SP.TERRITORYID = ST.TERRITORYID 
GROUP BY ST.NAME, ST.COUNTRYREGIONCODE; 

我只是猜测列的来源。

0

该列是否存在于多个表中?

如果是这样,你应该命名场这样的:

SP.salesYTD 

ST.salesYTD 

根据你想显示什么。

祝你好运。

+1

它现在的作品:)谢谢 – Ana