我有一个带有ID, UniqName, Category, EntDate,的 mysql 表Qty。
当“类别”中的总和超过设定限制时,我必须EntDate为每个找到。UniqNameQty
我是 SQL 的初学者,被这个报告要求难住了。
我有一个带有ID, UniqName, Category, EntDate,的 mysql 表Qty。
当“类别”中的总和超过设定限制时,我必须EntDate为每个找到。UniqNameQty
我是 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每个都不重复且不为UniqNameNULL qty。如果qty可以为零或负数,您可能会得到多行。