【发布时间】:2017-10-20 15:19:27
【问题描述】:
我有这个子查询:
LEFT JOIN (SELECT 1 as exist
, MAX (ev.EventDate) as eventdate
, evt.EventCode
, CCaseID
FROM stg.Event ev
JOIN stg.EventTemplate evt
ON ev.EventTemplateID = evt.ID
WHERE evt.EventCode = 'UN002'
Group by CCaseID, evt.EventCode) as un002
ON un002.CCaseID = ev.CCaseID
WHERE evt.EventCode = 'UN001'
AND (un002.eventdate < ev.eventdate OR un002.eventdate IS NULL)
Group by ev.CCaseID, evt.EventCode) as un001
ON cc.ID = un001.CCaseID
我现在正尝试按照un001.exist 访问外部查询中的存在字段,但 SQL Server 告诉我这是一个无效字段。我错过了什么?
【问题讨论】:
-
如果该列被称为 1,只需尝试用方括号将数字 [1] 括起来,如图所示。
-
您是在问为什么无法访问主查询中名为“exist”的列吗?
-
嗯....un001.exist 不是有效的列。您将该子查询命名为 un002。这会让您更容易查看是否有更好的格式。
-
我敢打赌这是一个更高级别的问题。这看起来像是一个乱七八糟的查询。
标签: sql sql-server tsql subquery sql-server-2014