好的,这是我的查询:
SELECT DISTINCT
CS.CPL_Schedule_Id AS CplScheduleId
,S.Schedule_Status_Id AS ScheduleStatusId
,S.Record_Created AS Created
FROM CPL_Schedule CS
JOIN (
SELECT TOP 1 CSL.CPL_Schedule_ID, CSL.Record_Created, CSL.Schedule_Status_Id
FROM CPL_Schedule_Audit_Log CSL
WHERE CSL.CPL_Schedule_ID = CS.CPL_Schedule_ID
ORDER BY Record_Created DESC
) S
ON S.CPL_Schedule_ID = CS.CPL_Schedule_ID
WHERE
CS.Exhibitor_Id = 1
我收到了WHERE CSL.CPL_Schedule_ID = CS.CPL_Schedule_ID
无法绑定多部分标识符“CS.CPL_Schedule_ID”。
对我来说,看起来这就是说嵌套查询不知道CS,这是真的吗?我在这里错过了什么?非常感谢帮助,谢谢!
答案 0 :(得分:3)
看来,您需要cross apply
而不是join
,因此不需要ON
。
SELECT DISTINCT
CS.CPL_Schedule_Id AS CplScheduleId
,S.Schedule_Status_Id AS ScheduleStatusId
,S.Record_Created AS Created
FROM CPL_Schedule CS
CROSS APPLY (
SELECT TOP 1 CSL.CPL_Schedule_ID, CSL.Record_Created, CSL.Schedule_Status_Id
FROM CPL_Schedule_Audit_Log CSL
WHERE CSL.CPL_Schedule_ID = CS.CPL_Schedule_ID
ORDER BY Record_Created DESC
) S
WHERE
CS.Exhibitor_Id = 1