我要實作的功能是統計訂單日志表中每一個訂單的前三條日志記錄,表結構如下:

select b.OrderNumber,b.creationtime,b.remark FROM
(
SELECT a.OrderNumber,a.CreationTime,a.Remark
FROM [FortuneLabFord].[dbo].[SO_Log] a
where a.SysId IN
(
select TOP 3 SysId from [FortuneLabFord].[dbo].[SO_Log]
where a.OrderNumber = SO_Log.OrderNumber ORDER BY a.CreationTime DESC
)
) b
group BY b.OrderNumber,b.creationtime,b.remark
ORDER BY b.OrderNumber
思路是:先在内層根據CreationTime做排序,然後再自關聯一下本身的表,根據主鍵關聯,然後對結果集做分組和排序,這樣就能保證同一個訂單的三條記錄都排在一起
這種查詢方法适用于表中有唯一性辨別的字段,如果沒有唯一性辨別的字段就不能這麼查了。
如果您覺得本文對你有用,不妨幫忙點個贊,或者在評論裡給我一句贊美,小小成就都是今後繼續為大家編寫優質文章的動力!
歡迎您持續關注我的部落格:)
作者:Ken Wang
出處:http://www.cnblogs.com/Wolfmanlq/
版權所有,歡迎保留原文連結進行轉載:)