SQL选择所有列以仅使用MAX seqno返回

时间:2019-02-03 21:13:41

标签: sql sql-server tsql sql-server-2016

下面的查询返回多行,如下图所示。

我想知道如何仅返回带有MAX seqno的一行。还要注意,我想在这里返回表中的所有列。

感谢您的帮助。

SELECT * 
FROM dbo.SALESORD_HDR HD 
JOIN dbo.SALESORDHIST AS HI ON HD.SEQNO = HI.HEADER_SOURCE_SEQ
                            AND hi.FILEURL <> '' 
                            AND HI.EVENT_TYPE='D'

enter image description here

2 个答案:

答案 0 :(得分:5)

如何排序记录并仅选择第一个记录?

SELECT TOP 1 * 
FROM dbo.SALESORD_HDR HD 
JOIN dbo.SALESORDHIST AS HI ON HD.SEQNO = HI.HEADER_SOURCE_SEQ
                            AND hi.FILEURL <> '' 
                            AND HI.EVENT_TYPE='D'
ORDER BY HD.SEQNO DESC

答案 1 :(得分:1)

这可以。

select * 
FROM dbo.SALESORD_HDR HD 
JOIN dbo.SALESORDHIST AS HI 
   ON HD.SEQNO = HI.HEADER_SOURCE_SEQ and hi.FILEURL <> '' AND HI.EVENT_TYPE='D'
WHERE HD.SEQNO = (
  SELECT MAX(HD.SEQNO) FROM dbo.SALESORD_HDR HD 
JOIN dbo.SALESORDHIST AS HI 
   ON HD.SEQNO = HI.HEADER_SOURCE_SEQ AND hi.FILEURL <> '' AND HI.EVENT_TYPE='D'
)