下面的查询返回多行,如下图所示。
我想知道如何仅返回带有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'
答案 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'
)