Sql server 无法绑定多部分标识符之间的跳转(&P);不明确的列名

Sql server 无法绑定多部分标识符之间的跳转(&P);不明确的列名,sql-server,Sql Server,我不断收到两条错误消息,这取决于我如何修复它们 首先,这是我的代码: SELECT ConsltNum AS 'Consultant Number', COUNT(ConsltNum) AS 'Client Count', AVG(Balance) AS 'Average' FROM Client Cl INNER JOIN Consultant Cn ON Cl.ConsltNum = Cn.ConsltNum GROUP BY Cn.

我不断收到两条错误消息,这取决于我如何修复它们

首先,这是我的代码:

SELECT 
    ConsltNum AS 'Consultant Number', 
    COUNT(ConsltNum) AS 'Client Count', 
    AVG(Balance) AS 'Average'
FROM
    Client Cl
INNER JOIN 
    Consultant Cn ON Cl.ConsltNum = Cn.ConsltNum
GROUP BY 
    Cn.LastName
运行它时,我得到了这个

味精209,第16级,状态1,第3行
列名称“ConsltNum”不明确

味精209,第16级,状态1,第3行
列名称“ConsltNum”不明确

现在,我知道它是不明确的,因为
ConsltNum
存在于我包含的两个表中。通常我会尝试通过将代码更改为以下方式拨入该数据库:

SELECT 
    Client.ConsltNum AS 'Consultant Number', 
    COUNT(Client.ConsltNum) AS 'Client Count', 
    AVG(Balance) AS 'Average'
FROM
    Client Cl
INNER JOIN 
    Consultant Cn ON Cl.ConsltNum = Cn.ConsltNum
GROUP BY 
    Cn.LastName
运行此命令后,我得到:

味精4104,第16级,状态1,第3行
无法绑定多部分标识符“Client.ConsltNum”

味精4104,第16级,状态1,第3行
无法绑定多部分标识符“Client.ConsltNum”


还有一些值得一提的事情:我试着拨到dbo.Client.ConsltNum,但它抛出了相同的错误。

只要使用正确的别名:

SELECT cl.ConsltNum AS Consultant_Number,
       COUNT(*) AS Client_Count, AVG(?.Balance) AS Average
FROM Client Cl INNER JOIN
     Consultant Cn
     ON Cl.ConsltNum = Cn.ConsltNum
GROUP BY cl.ConsltNum;
用于表的别名,该表的
余额来自该表

注:

  • 您需要使用为列指定的表别名
  • 分组依据
    应与
    选择
    列匹配
  • 仅对字符串和日期常量使用单引号。给出不需要转义的列名称
  • 您最好使用
    COUNT(*)
    ,因为您知道
    ConsltNum
    永远不会
    NULL