我有一个查询可以满足我的需要,但是因为图表的 joomla 插件不接受初始 SET 值为零,我需要一种方法将这个查询转换为 View ,或者至少执行不使用 SET 的算术函数。
基本上,此查询会为每个月显示一列员工总数,加上上个月的员工数并减去离开的员工数。
SELECT
CONCAT(q1.d,'-',LPAD(q1.m,2,0)) AS Periodo,
q1.c AS `<font color="blue">Assunzioni</font>`,
q1.l AS `<font color="red">Licenziamenti</font>`
FROM
(SELECT
YEAR(calendar.datefield) AS d,
month(calendar.datefield) AS m,
SUM(statistica_assunti_n.assunzioni) AS c,
SUM(statistica_licenziati_n.licenziamenti) AS l
FROM calendar
INNER JOIN statistica_assunti_n
ON calendar.datefield = statistica_assunti_n.data_assunzioni
INNER JOIN statistica_licenziati_n
ON calendar.datefield = statistica_licenziati_n.data_licenziamenti
WHERE YEAR(datefield) ={$REQUEST:chartYearStart|empty:'2011'}
AND datefield <= DATE(NOW())
GROUP BY d, m
ORDER BY d, m) AS q1
如有任何帮助,我们将不胜感激。
最佳答案
插件的管理员给了我解决方案,(SELECT @runtot := 0) AS zero:
SELECT
CONCAT(q1.d,'-',LPAD(q1.m,2,0)) AS Periodo,
(@runtot := @runtot + q1.c - q1.l) AS `N. dipendenti`
FROM
(SELECT
YEAR(calendar.datefield) AS d,
month(calendar.datefield) AS m,
SUM(statistica_assunti_n.assunzioni) AS c,
SUM(statistica_licenziati_n.licenziamenti) AS l
FROM calendar
INNER JOIN statistica_assunti_n
ON calendar.datefield = statistica_assunti_n.data_assunzioni
INNER JOIN statistica_licenziati_n
ON calendar.datefield = statistica_licenziati_n.data_licenziamenti
WHERE YEAR(datefield) = {$REQUEST:chartYearStart|empty:'2011'} AND datefield <= DATE(NOW())
GROUP BY d, m
ORDER BY d, m) AS q1, (SELECT @runtot := 0) AS zero
关于mysql - 在mysql中将初始总和设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413578/