Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 第二个表中值的TSQL条件联接_Sql Server 2008 - Fatal编程技术网

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”附近的语法不正确。