SQL Server组By和Left Outer Join自定义结果集

时间:2013-08-27 08:09:49

标签: sql join group-by having

我有两个表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

表格的数据库图表

enter image description here

1 个答案:

答案 0 :(得分: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