DECLARE @t TABLE (
id INT PRIMARY KEY,
n INT
)
INSERT INTO @t (id,n) VALUES (2,10),(3,12),(5,13),(7,14),(8,15)
SELECT * FROM @t
DECLARE @v INT
SET @v = 30
;WITH t AS(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS rowNum, id,SUM(n) OVER (ORDER BY id) AS s FROM @t
)
,t2 AS (
SELECT a.rowNum FROM t A WHERE A.s>=@v AND EXISTS(
SELECT * FROM t B WHERE b.rowNum=a.rowNum-1 AND b.s<@v
)
)
SELECT * FROM t A WHERE Exists(
SELECT * FROM t2 B WHERE A.rowNum<=B.rowNum
)
求出一个表前面多少条记录的金额相加大于等于指定的值
最新推荐文章于 2022-05-20 10:12:56 发布