2016-09-09 4 views
1

私が必要とするのはクエリですが、チャートのjoomlaアドオンが初期のSET値を0にしないため、このクエリをビューに変換する必要があります少なくとも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

、(@runtot SELECT:= 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 
関連する問題