Show me the whole SQL query.
SELECT d.`commessa`,
d.`cliente`,
d.`operatore`,
d.`Anno`,
(
Select
sum(pr.giornate)
from (
SELECT f.`cod_operatore` As operatore,
f.`cod_commessa`As commessa,
year (f.`data`) As Anno,
sum(f.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero f
group by f.`cod_operatore`,
f.`cod_commessa`,
year (f.`data`)
) pr
where pr.`Anno`< d.`Anno`
AND pr.`operatore`=d.`operatore`
AND pr.`commessa`=d.`commessa`
) As prec,
Sum(CASE d.`Mese` WHEN '1' THEN d.`giornate` ELSE 0 END) As Gennaio,
Sum(CASE d.`Mese` WHEN '2' THEN d.`giornate` ELSE 0 END) As Febbraio,
Sum(CASE d.`Mese` WHEN '3' THEN d.`giornate` ELSE 0 END) As Marzo,
Sum(CASE d.`Mese` WHEN '4' THEN d.`giornate` ELSE 0 END) As Aprile,
Sum(CASE d.`Mese` WHEN '5' THEN d.`giornate` ELSE 0 END) As Maggio,
Sum(CASE d.`Mese` WHEN '6' THEN d.`giornate` ELSE 0 END) As Giugno,
Sum(CASE d.`Mese` WHEN '7' THEN d.`giornate` ELSE 0 END) As Luglio,
Sum(CASE d.`Mese` WHEN '8' THEN d.`giornate` ELSE 0 END) As Agosto,
Sum(CASE d.`Mese` WHEN '9' THEN d.`giornate` ELSE 0 END) As Settembre,
Sum(CASE d.`Mese` WHEN '10' THEN d.`giornate` ELSE 0 END) As Ottobre,
Sum(CASE d.`Mese` WHEN '11' THEN d.`giornate` ELSE 0 END) As Novembre,
Sum(CASE d.`Mese` WHEN '12' THEN d.`giornate` ELSE 0 END) As Dicembre,
(Sum(d.`giornate`)+
IF (
(Select sum(pr2.giornate)
from (
SELECT f2.`cod_operatore` As operatore,
f2.`cod_commessa`As commessa,
year (f2.`data`) As Anno,
sum(f2.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero f2
group by f2.`cod_operatore`,
f2.`cod_commessa`,
year (f2.`data`)
) pr2
where pr2.`Anno`< d.`Anno`
AND pr2.`operatore`=d.`operatore`
AND pr2.`commessa`=d.`commessa`
)IS NULL, 0,
(Select sum(pr3.giornate)
from (
SELECT f3.`cod_operatore` As operatore,
f3.`cod_commessa`As commessa,
year (f3.`data`) As Anno,
sum(f3.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero f3
group by f3.`cod_operatore`,
f3.`cod_commessa`,
year (f3.`data`)
) pr3
where pr3.`Anno`< d.`Anno`
AND pr3.`operatore`=d.`operatore`
AND pr3.`commessa`=d.`commessa`
)
)
) As totali,
(
SELECT sum(cai.`n_giorni`)
FROM commesse_ai cai
where cai.`cod_operatore`=d.`operatore`
AND cai.`cod_commessa`=d.`commessa`
group by cai.`cod_operatore`,
cai.`cod_commessa`) As Contr,
(
(
SELECT sum(cai.`n_giorni`)
FROM commesse_ai cai
where cai.`cod_operatore`=d.`operatore`
AND cai.`cod_commessa`=d.`commessa`
group by cai.`cod_operatore`,
cai.`cod_commessa`)-
(
Sum(d.`giornate`)+
IF (
(Select sum(pr2.giornate)
from (
SELECT f2.`cod_operatore` As operatore,
f2.`cod_commessa`As commessa,
year (f2.`data`) As Anno,
sum(f2.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero f2
group by f2.`cod_operatore`,f2.`cod_commessa`,
year (f2.`data`)
) pr2
where pr2.`Anno`< d.`Anno`
AND pr2.`operatore`=d.`operatore`
AND pr2.`commessa`=d.`commessa`
)IS NULL,
0,
(Select sum(pr3.giornate)
from (
SELECT f3.`cod_operatore` As operatore,
f3.`cod_commessa`As commessa,
year (f3.`data`) As Anno,
sum(f3.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero f3
group by f3.`cod_operatore`,
f3.`cod_commessa`,
year (f3.`data`)
) pr3
where pr3.`Anno`< d.`Anno`
AND pr3.`operatore`=d.`operatore`
AND pr3.`commessa`=d.`commessa`
)
)
)
) As restanti
FROM (
SELECT r.`cod_operatore` As operatore,
r.`cod_commessa`As commessa,
r.`cliente` As cliente,
year (r.`data`) As Anno,
month(r.`data`) As Mese,
sum(r.`gg`) As giornate
FROM db_innovare2.rapportinogiornaliero r
group by r.`cod_operatore`,r.`cod_commessa`,year (r.`data`)
) d
group by d.`operatore`,
d.`commessa`,
d.`Anno`