codice:
SELECT tutto.nome_categoria, tutto.descrizione_categoria, tutto.aliquota_iva, Max(tutto.SommaDiretta) AS importo_diretto, Max(tutto.SommaLeasing) AS importo_leasing, Sum(tutto.SommaOrdine) AS somma_ordine , Max(tutto.SommaDiimporto_ft) AS somma_ft, Max(tutto.SommaDiconto_anticipo) AS somma_anticipo, Max(tutto.SommaDiimporto_pagamento) AS somma_pagamento, Max(tutto.SommaDiimporto_pagamento_anticipo) AS somma_pagamento_anticipo
FROM (SELECT tab_categorie.ID_categorie, tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_fatture.id_progetto, tab_fatture.aliquota_iva, 0 AS SommaDiretta, 0 AS SommaLeasing, 0 AS SommaOrdine , 0 AS SommaDiimporto_ft, 0 AS SommaDiconto_anticipo, tab_fatture.elimina_fattura, Sum(tab_pagamenti.importo_pagamento) AS SommaDiimporto_pagamento, Sum(tab_pagamenti.importo_pagamento_anticipo) AS SommaDiimporto_pagamento_anticipo, tab_pagamenti.elimina_pagamento
FROM (tab_categorie INNER JOIN tab_voci ON tab_categorie.ID_categorie = tab_voci.id_categoria) INNER JOIN (tab_ordini INNER JOIN (tab_fatture LEFT JOIN tab_pagamenti ON tab_fatture.ID_fatture = tab_pagamenti.id_fattura) ON tab_ordini.ID_ordini = tab_fatture.id_ordine) ON tab_voci.ID_voci = tab_ordini.id_voce
WHERE tab_fatture.elimina_fattura = false AND tab_pagamenti.elimina_pagamento = false AND tab_fatture.id_progetto = 7
GROUP BY tab_categorie.ID_categorie, tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_fatture.id_progetto, tab_fatture.aliquota_iva, tab_fatture.elimina_fattura, tab_pagamenti.elimina_pagamento
union
SELECT tab_categorie.ID_categorie, tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_fatture.id_progetto, tab_fatture.aliquota_iva, Sum(tab_voci.importo_diretto) as SommaDiretta, Sum(tab_voci.importo_leasing) AS SommaLeasing, tab_ordini.importo_ordine AS SommaOrdine , Sum(tab_fatture.importo_ft) AS SommaDiimporto_ft, Sum(tab_fatture.conto_anticipo) AS SommaDiconto_anticipo, tab_fatture.elimina_fattura, 0 AS SommaDiimporto_pagamento, 0 AS SommaDiimporto_pagamento_anticipo, 0
FROM (tab_categorie INNER JOIN tab_voci ON tab_categorie.ID_categorie = tab_voci.id_categoria) INNER JOIN (tab_ordini INNER JOIN tab_fatture ON tab_ordini.ID_ordini = tab_fatture.id_ordine) ON tab_voci.ID_voci = tab_ordini.id_voce
WHERE tab_fatture.elimina_fattura = false AND tab_fatture.id_progetto = 7
GROUP BY tab_categorie.ID_categorie, tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_ordini.importo_ordine , tab_fatture.id_progetto, tab_fatture.aliquota_iva, tab_fatture.elimina_fattura) AS tutto
GROUP BY tutto.nome_categoria, tutto.descrizione_categoria, tutto.aliquota_iva;