我有一个带有ID
, UniqName
, Category
, EntDate
,的 mysql 表Qty
。
当“类别”中的总和超过设定限制时,我必须EntDate
为每个找到。UniqName
Qty
我是 SQL 的初学者,被这个报告要求难住了。
我有一个带有ID
, UniqName
, Category
, EntDate
,的 mysql 表Qty
。
当“类别”中的总和超过设定限制时,我必须EntDate
为每个找到。UniqName
Qty
我是 SQL 的初学者,被这个报告要求难住了。
计算运行总和可能很复杂。一些数据库提供直接支持。这是 MySQL 中使用相关子查询的方法:
select t.*
from (select t.*,
(select sum(t2.qty)
from t t2
where t2.UniqName = t.UniqName and
t2.EntDate <= t.EntDate
) as cumsum
from t
) t
where cumsum >= YOURLIMIT and cumsum - qty < YOURLIMIT;
如果你有一个索引,这甚至可以有合理的性能t(UniqName, EntDate, qty)
。
此查询假定EntDate
每个都不重复且不为UniqName
NULL qty
。如果qty
可以为零或负数,您可能会得到多行。