我已经在SF中看到了这个问题,但是我是菜鸟,只是无法让我的头脑变得模糊。因此,如果您想重复,请原谅我。
我的样品表
-------------------------- ID | 供应商| 数量 -------------------------- 1 1 2 2 1 2 3 2 5 4 3 2 5 1 3 6 2 4
我需要获取“ UNTIL”行,对于特定的供应商ID,“ QTY”的累计总数按降序等于或大于5。
在此示例中,对于供应商1,它将是ID为5和2的行。
ID-唯一主键 供应商-外键,还有另一张供应商信息表。 数量-双倍
这个怎么样?使用两个变量。
SQLFIDDLE演示
询问:
set @tot:=0; set @sup:=0; select x.id, x.supplier, x.ctot from ( select id, supplier, qty, @tot:= (case when @sup = supplier then @tot + qty else qty end) as ctot, @sup:=supplier from demo order by supplier asc, id desc) x where x.ctot >=5 ; | ID | SUPPLIER | CTOT | ------------------------ | 2 | 1 | 5 | | 1 | 1 | 7 | | 3 | 2 | 5 |