2016-09-09 1 views
1

У меня есть запрос, который делает то, что мне нужно, но поскольку аддон joomla для диаграмм не принимает начальное значение SET до нуля, мне нужен способ преобразования этого запроса в представление , или, по крайней мере, выполнить арифметическую функцию без использования SET.Устанавливать начальную сумму до нуля в mysql

В основном, этот запрос показывает столбец за каждый месяц с общим количеством сотрудников, добавив их из прошлого месяца и вычитая оставшихся.

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 

Любая помощь будет оценена, спасибо.

ответ

1

администратор аддон дал мне решение, (SELECT @runtot: = 0) AS ноль:

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 
Смежные вопросы