0

我有一张包含产品、数量和重量的表格。我需要找到达到一定价值的较重的产品。例子:

桌子:

Product     Qty Weight
PEN         100 50
PEN          10 30
PEN          80 20
PEN         250 20
PEN        1000 10
PAPER       150 80
PAPER      1500 20

查询:查找按重量排序的最大数量达到 200 个的 PEN。

结果:

PEN         100 50
PEN          10 30
PEN          80 20

编辑: 结果是因为:100+10+80 < 200。

4

1 回答 1

5

如果您使用的是 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

http://sqlfiddle.com/#!6/6157b/4

于 2012-12-11T19:24:06.910 回答