我即将完成一个正在运行的总栏目,但我认为我错过了一些简单的事情。任何帮助将不胜感激。
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与调整相匹配,并没有像我希望的那样显示正在运行的总数。
提前感谢您的帮助!
答案 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