Mak*_*kah 0 sql t-sql sql-server
我有一张产品,数量和重量的表格.我需要找到达到一定值的较重的产品.例:
表:
Product Qty Weight
PEN 100 50
PEN 10 30
PEN 80 20
PEN 250 20
PEN 1000 10
PAPER 150 80
PAPER 1500 20
Run Code Online (Sandbox Code Playgroud)
查询:查找按权重排序达到最大200数量的PEN.
结果:
PEN 100 50
PEN 10 30
PEN 80 20
Run Code Online (Sandbox Code Playgroud)
编辑: 结果是因为:100 + 10 + 80 <200.
如果您使用的是SQL 2012,则可以将此类方法用于运行总计:
Select
Qty,
Weight
From (
Select
Qty,
Weight,
Sum(Qty) Over(Order By Weight Desc Rows Between Unbounded Preceding And Current Row) As RunningQty
From
Test
Where
Product = 'PEN'
) a
Where
RunningQty <= 200
Run Code Online (Sandbox Code Playgroud)
http://sqlfiddle.com/#!6/6157b/4