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 に答える