我一直坚持这个错误,SO上的相关问题并没有帮助我看到这个问题:
SELECT
EventID = a.EventID
,PositionID = a.PositionID
,SubscriberID = a.SubscriberID
,EventTitle = a.EventTitle
,Frequency = a.Frequency
,DueDate = a.DueDate
,NoticeDate = a.NoticeDate
,SubscriberName = e.SubscriberName
,PositionTitle = d.PositionTitle
,UserID = c.UserID
,UserName = c.UserName
,BackupUserID = b.BackupUserID
FROM
dbo.tblEvent a JOIN
dbo.PositionPeople b JOIN
dbo.UserInfo c JOIN
dbo.Position d JOIN
dbo.Subscriber e
ON
a.PositionID = b.PositionID AND
a.SubscriberID = b.SubscriberID AND
b.IncumbentUserID = c.UserID AND
a.SubscriberID = c.SubscriberID AND
a.SubscriberID = e.SubscriberID AND
a.PositionID = d.PositionID
我没有混合隐式和显式JOIN,也没有使用本主题上其他线程建议的子查询。我在上面的ON子句之后的所有内容都会出现此错误(e.SubscriberID和d.PositionID除外)。我尝试了几种变化,但我无法发现问题。
答案 0 :(得分:4)
您的查询结构似乎不一致,请尝试同一查询的此版本:
SELECT A.EventID
,A.PositionID
,A.SubscriberID
,A.EventTitle
,A.Frequency
,A.DueDate
,A.NoticeDate
,E.SubscriberName
,D.PositionTitle
,C.UserID
,C.UserName
,B.BackupUserID
FROM dbo.tblEvent A
INNER JOIN dbo.PositionPeople B ON B.PositionID = A.PositionID
AND B.SubscriberID = A.SubscriberID
INNER JOIN dbo.UserInfo C ON C.SubscriberID = A.SubscriberID
AND C.UserID = B.IncumbentUserID
INNER JOIN dbo.Position D ON D.PositionID = A.PositionID
INNER JOIN dbo.Subscriber E ON E.SubscriberID = A.SubscriberID
如果你想使用这个查询设置一些变量,只需在SELECT原因中添加变量实例化,如下例所示:
SELECT @EventID = A.EventID
,@PositionID = A.PositionID
...
FROM ...
希望这会有所帮助。