1つの 宣言 @ivtの テーブル(数量INT、コードNVARCHAR(10 )) 2 インサート に @ivt (数量、コード) 3 選択 7、' ' 組合4 セレクト3、' B ' 組合5 セレクト4、' C ' 6 選択* から@ivtの順序によってコード 7 8 DECLARE @tb テーブル (IdがINT、数量INT、コードNVARCHAR(10 )) 9 インサート に @tb (ID、数量、コード) 10 セレクト 1、1、' ' 組合11 セレクト2、2、' B ' 組合12 セレクト3、3、' C ' 組合13が選択4、2、' ' 組合 14 セレクト 5、1、' B ' ユニオン 15 を選択し 6、3、' ' 組合16 セレクト7、1、' C ' 組合17 セレクト8、3、' ' 組合18 セレクト9、2、' C ' 組合19 セレクト10、4、' ' 20 セレクト * から @tb 順序 によってID 21 22 セレクト a.Id、a.Qty、a.Code から @tb 参加 @tb B に b.id <= a.Id と a.Code = b.Code 23は、 参加 @ivt C に c.Code = a.Code 24 基 によってa.Id、a.Code、a.Qty、c.Qty 25 を有する 和(b.qty)を<= c.Qty
https://dba.stackexchange.com/questions/74846/sql-select-top-x-rows-having-sum-limit
DECLARE @Limit FLOAT
SELECT @Limit = 30
SELECT
o1.Id
, o1.Cost
, o1.Category
FROM
MyOrders o1
-- Join all orders with same category and inferior ID
INNER JOIN MyOrders o2 ON o2.ID <= o1.ID AND o1.Category = o2.Category
GROUP BY
o1.Id
, o1.Cost
, o1.Category
HAVING
SUM(o2.Cost) < @Limit
ORDER BY
ID