如何选择不同的TOP但按列分组

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 个) .

pap*_*zzo 9

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)