Sql server 2008 第二个表中值的TSQL条件联接
我想在两个表上进行条件联接,并想在第二个表中以最高状态联接。状态值包括分配、预订、交付和关闭Sql server 2008 第二个表中值的TSQL条件联接,sql-server-2008,Sql Server 2008,我想在两个表上进行条件联接,并想在第二个表中以最高状态联接。状态值包括分配、预订、交付和关闭 SELECT CPC.CpcID, StatusFlow = CPC.Status, Orders.CarModel, EnquiryLog.EnquiryStatus FROM CPC INNER JOIN Orders ON CPC.CpcID = Orders.CpcID INNER JOIN EnquiryLog ON CPC.CpcID = En
SELECT
CPC.CpcID, StatusFlow = CPC.Status, Orders.CarModel, EnquiryLog.EnquiryStatus
FROM
CPC
INNER JOIN
Orders ON CPC.CpcID = Orders.CpcID
INNER JOIN
EnquiryLog ON CPC.CpcID = EnquiryLog.CpcID
WHERE
CPC.CpcID = '24092015/12'
因此,在这种情况下,它应该只显示一行inquiryStatus为“Delivery”,但根据我的查询,结果是:
SQL查询输出:
如果我的方法正确:
SELECT CPC.CpcID, StatusFlow = CPC.Status, Orders.CarModel, ca.EnquiryStatus
FROM CPC
INNER JOIN Orders ON CPC.CpcID = Orders.CpcID
CROSS APPLY(SELECT TOP 1 * FROM EnquiryLog WHERE CPC.CpcID = EnquiryLog.CpcID
ORDER BY CASE EnquiryStatus
WHEN 'CLOSED' THEN 1
WHEN 'DELIVERY' THEN 2
WHEN 'BOOKED' THEN 3
WHEN 'ASSIGNED' THEN 4 END) ca
WHERE CPC.CpcID='24092015/12'
为什么不针对该状态进行筛选?当存在多个CpcID时,筛选将始终不起作用。请提供一些我们可以使用的数据。以及该数据所需的输出。您好Giorgi,此查询存在一些问题。。Msg 156,15级,状态1,第10行关键字“WHERE”附近的语法不正确。