jel*_*ini 3 sql sql-server sql-server-2008
我在sql server select查询中有问题.我有下表.
ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20
4-------d-----------15
5-------e-----------10
6-------f-----------30
7-------g-----------40
Run Code Online (Sandbox Code Playgroud)
我想选择那些数量总和<值的记录.例如,如果我说选择那些数量总和<65的记录,则输出将是
ID-----Name----Quantity
1-------a-----------10
2-------b-----------30
3-------c-----------20
Run Code Online (Sandbox Code Playgroud)
因为如果我们包含下一条记录,则数量总和将为75.
我想创建此查询.请帮帮我.
您可以简单地使用相关的子查询来执行此操作,它将适用于MySQL和SQL Server.但它不是最好的性能明智的解决方案:
SELECT
ID,
Name,
Quantity
FROM
(
SELECT
t1.ID,
t1.Name,
t1.Quantity,
(SELECT SUM(t2.Quantity)
FROM tablename AS t2
WHERE t2.ID <= t1.ID) AS Total
FROM Tablename AS t1
) AS t
WHERE Total < 65;
Run Code Online (Sandbox Code Playgroud)
看到它的实际效果:
这会给你:
| ID | NAME | QUANTITY |
------------------------
| 1 | a | 10 |
| 2 | b | 30 |
| 3 | c | 20 |
Run Code Online (Sandbox Code Playgroud)