SQL Server分组依据和左外部联接自定义结果集

SQL Server分组依据和左外部联接自定义结果集,sql,join,group-by,having,Sql,Join,Group By,Having,我有两个表RDC和Cons_Status,RDC中有一个唯一的列RDC_ConsNO。根据该托运编号,Cons_状态表中可能有多条记录,如所附图像所示。我想编写一个查询,在该查询中,我只获得一条加入到具有最大STU 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 RD

我有两个表RDC和Cons_Status,RDC中有一个唯一的列RDC_ConsNO。根据该托运编号,Cons_状态表中可能有多条记录,如所附图像所示。我想编写一个查询,在该查询中,我只获得一条加入到具有最大STU 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
表的数据库关系图


别忘了给列加前缀

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

不要显示图像。链接,我们也不能用它们来创建示例数据。@TimSchmelter请看一看。我不明白,你刚刚添加了更多的图像。如果您要复制/粘贴样本数据,我们将使用它的功能同时包含数据和模式。@TimSchmelter我已经添加了查询,并认为您需要了解表结构才能更好地理解查询,如果您需要查询表单中的表结构,请让我know@t-dk感谢交叉应用确实有效,但它消除了左外连接的使用。若cons_状态表中并没有相关记录,它将不会返回任何内容。@MegaMind现在应用它