Sql server 2008 r2 Msg 209,16级,状态1,第4行不明确的列名“p_id”
我有以下生成错误消息的查询 Msg 209,16级,状态1,第4行不明确的列名“p_id” 下面是令人不快的问题Sql server 2008 r2 Msg 209,16级,状态1,第4行不明确的列名“p_id”,sql-server-2008-r2,Sql Server 2008 R2,我有以下生成错误消息的查询 Msg 209,16级,状态1,第4行不明确的列名“p_id” 下面是令人不快的问题 SELECT * from (select playerperform.p_id,player.first_name, SUM (playerperform.score)as totalgoal, RANK() OVER(ORDER BY SUM(playerperform.score)DESC) Rnk from playerperform,player
SELECT *
from (select playerperform.p_id,player.first_name, SUM (playerperform.score)as totalgoal, RANK() OVER(ORDER BY SUM(playerperform.score)DESC) Rnk
from playerperform,player
Group by p_id
)as a
WHERE Rnk = 1
显然,playerperperform和player中都有一个p_id列
最低限度,改变:
GROUP BY p_id
到
您正在执行隐式交叉联接似乎也很可疑:
我怀疑这应该是一个具有某些条件的内部联接,例如
FROM dbo.playerperform INNER JOIN dbo.player
ON playerperform.p_id = player.p_id
顺便说一句,p_id对于一列来说是一个糟糕的名字…我想把玩家的名字放进去,但它给了我这个错误,先生,我想把玩家的名字也放进去,我怎么能把它放进去?球员的名字在另一张桌子上叫球员对不起我不能understand@user2914820抱歉,如果您不明白我的答案,那么我不知道如何帮助您。选择*从SELECT playerperform.p_id,player.first_name+last_name,将playerperform.scoreas合计为totalgoal,按SUMplayerperform.scoreDESC Rnk从playerperform内部加入玩家对playerperform.p_id=player.p_id组按playerperform.p_id,玩家进行排序。名字+姓氏作为一个a,其中Rnk=1这些是我的代码
FROM playerperform,player
FROM dbo.playerperform INNER JOIN dbo.player
ON playerperform.p_id = player.p_id