0

我有一个带有ID, UniqName, Category, EntDate,的 mysql 表Qty

当“类别”中的总和超过设定限制时,我必须EntDate为每个找到。UniqNameQty

我是 SQL 的初学者,被这个报告要求难住了。

4

1 回答 1

1

计算运行总和可能很复杂。一些数据库提供直接支持。这是 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可以为零或负数,您可能会得到多行。

于 2013-09-17T15:50:02.517 回答