Jan*_*ren 2 sql-server sql-server-2008-r2 group-by top
我有一个 500 行的结果集,但这是 100 张发票。我只需要最后一张发票的前 10 个。
我发现了类似的东西:如何从每个类别中选择前 10 条记录
样本数据:
InvNr | DetailLine
111 | 1
111 | 2
112 | 1
112 | 2
112 | 3
113 | 1
113 | 2
114 | 1
115 | 1
... | ...
Run Code Online (Sandbox Code Playgroud)
我希望得到的是例如:
SELECT DISTINCT TOP 2 InvNr, DetailLine FROM tbl_Invoice
Run Code Online (Sandbox Code Playgroud)
有了这个结果:
InvNr | DetailLine
111 | 1
111 | 2
112 | 1
112 | 2
112 | 3
Run Code Online (Sandbox Code Playgroud)
更新:
所以我需要他们创建的最后 10 个(或上例中的前 2 个)发票,但每个发票可以有“x”个明细行,我希望结果中的所有明细行(最后 10 个) .
SELECT InvNr, DetailLine
FROM tbl_Invoice
where InvNr in (select distinct top (2) InvNr from tbl_Invoice order by InvNr);
Run Code Online (Sandbox Code Playgroud)