0

我有两个表 RDC 和 Cons_Status,rdc 中有一个唯一的列 RDC_ConsNO。根据这个托运单号,Cons_Status 表中可能有多个记录,如附图所示。我想编写一个查询,其中只有一条记录加入到具有最大 sts_id 的状态中。我正在使用 SQL Server 2012。

SELECT STS_ID,RDC_CONSNO,STS_STATUS , RDC_DATE,RDC_CUSTOMER,DEST_NAME FROM RDC LEFT OUTER JOIN CONS_STATUS ON RDC_CONSNO=STS_CONSNO
INNER JOIN DESTINATION ON DEST_ID=RDC_DESTINATION WHERE RDC_CONSNO='HD88300'
ORDER BY STS_ID

表的数据库图

在此处输入图像描述

4

1 回答 1

1

不要忘记为您的列添加前缀

SELECT ?? FROM RDC
OUTER APPLY
(SELECT TOP 1 * FROM CONS_STATUS
WHERE RDC.RDC_CONSNO = STS_CONSNO
ORDER BY sts_id DESC
) a
INNER JOIN DESTINATION d
ON d.DEST_ID=RDC.RDC_DESTINATION 
WHERE RDC.RDC_CONSNO='HD88300'
ORDER BY a.STS_ID
于 2013-08-27T08:18:14.370 回答