运行总mysql查询 - 几乎正常工作

时间:2013-01-29 08:40:45

标签: mysql

我即将完成一个正在运行的总栏目,但我认为我错过了一些简单的事情。任何帮助将不胜感激。

SET @runtot := 0;
SELECT
  COUNT(adjustment_id) AS Adjustments,
  DATE(FROM_UNIXTIME(shifts.outtime)) AS 'Month',
  (@runtot := @runtot + COUNT(adjustment_id)) AS RT
FROM adjustments
  INNER JOIN shifts
    ON (shifts.shiftID = adjustments.shiftID)
  INNER JOIN employees
    ON (shifts.idnum = employees.idnum)
WHERE YEAR(FROM_UNIXTIME(shifts.outtime)) = '2012'
GROUP BY MONTH(FROM_UNIXTIME(shifts.outtime))
ORDER BY MONTH(FROM_UNIXTIME(shifts.outtime))ASC

上面的代码输出:

Adjustments | Month      | RT
34          | 2012-08-29 | 34
161         | 2012-09-01 | 161

RT与调整相匹配,并没有像我希望的那样显示正在运行的总数。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要对汇总查询的结果执行运行总计:

SET @runtot := 0;

SELECT 
    Adjustments,
    Month,
    (@runtot := @runtot + Adjustments) AS RT
FROM ( SELECT
COUNT(adjustment_id) AS Adjustments,
DATE(FROM_UNIXTIME(shifts.outtime)) AS 'Month'
FROM
adjustments
INNER JOIN shifts ON (
shifts.shiftID = adjustments.shiftID
)
INNER JOIN employees ON (shifts.idnum = employees.idnum)
WHERE
YEAR (FROM_UNIXTIME(shifts.outtime)) = '2012'
GROUP BY MONTH(FROM_UNIXTIME(shifts.outtime))
ORDER BY MONTH(FROM_UNIXTIME(shifts.outtime)) ASC
) x