在SQL Server中选择匹配/总计总计

时间:2017-11-02 04:57:56

标签: sql sql-server

我希望得到匹配的所有id /总结我的总数量。

例如,如果我的总数量是40,那么我的查询将停止,直到它将所有数量总和完全或大于40。

查看截图

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您使用的是sql server 2012及更高版本,则可以使用此脚本。

;WITH CTE AS (
    SELECT PK_TRXNO, FK_iwItems, qty, 
        total = SUM(qty) OVER( PARTITION BY FK_iwItems ORDER BY PK_TRXNO DESC ROWS UNBOUNDED PRECEDING ) 
    FROM @MyTable
)
, CTE2 AS (
    SELECT *, 
       RN = ROW_NUMBER() OVER(PARTITION BY (CASE WHEN total > 40 THEN 1 ELSE 0 END) ORDER BY PK_TRXNO DESC)  
    FROM CTE 
)
SELECT * FROM CTE2
WHERE total <= 40 OR ( total> 40 AND RN = 1)