the procedure code is:
Code: Select all
$s = "
-- selezione per valori di performance dello studio nel periodo di tempo
SELECT
-- importo netto preventivato nel periodo
(SELECT SUM(listino.listino_prezzo)
FROM
listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
JOIN preventivo ON terapia.terapia_preventivo_id = preventivo.preventivo_id
WHERE
((preventivo.preventivo_data BETWEEN '#data_inizio#' AND '#data_fine#') AND
(terapia.terapia_non_eseguito ='0'))
) AS
'Importo preventivi',
-- importo terapie eseguite nel periodo
(SELECT SUM(listino.listino_prezzo)
FROM
listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
JOIN diario ON terapia.terapia_diario_id = diario.diario_id
WHERE
((diario.diario_data BETWEEN '#data_inizio#' AND '#data_fine#') AND
(terapia.terapia_non_eseguito ='0'))
) AS
'Importo terapie eseguite',
-- importo fatturato
(SELECT SUM(listino.listino_prezzo)
FROM
listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
LEFT JOIN fattura ON terapia.terapia_fattura_id = fattura.fattura_id
WHERE
((fattura.fattura_data BETWEEN '#data_inizio#' AND '#data_fine#')))
AS
'Importo fatturato',
-- importo incassato
(SELECT SUM(listino.listino_prezzo)
FROM
listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
LEFT JOIN fattura ON terapia.terapia_fattura_id = fattura.fattura_id
WHERE
((fattura.fattura_data BETWEEN '#data_inizio#' AND '#data_fine#') AND
(fattura.fattura_data_pagamento IS NOT NULL)))
AS 'Importo incassato';
";
nuRunQuery("CREATE TABLE #TABLE_ID# $s");
EDIT: I thought it could be the query, designed in a different way but had no positive outcome
Code: Select all
$s = "
-- selezione per valori di performance dello studio nel periodo di tempo
-- Dichiarazione delle variabili per i criteri di selezione
SET @data_inizio = '#data_inizio#';
SET @data_fine = '#data_fine#';
-- Dichiarazione delle variabili per ciascuna subquery
SET @importo_preventivi = (
SELECT SUM(listino.listino_prezzo)
FROM listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
JOIN preventivo ON terapia.terapia_preventivo_id = preventivo.preventivo_id
WHERE ((preventivo.preventivo_data BETWEEN @data_inizio AND @data_fine)
AND (terapia.terapia_non_eseguito = '0'))
);
SET @importo_terapie_eseguite = (
SELECT SUM(listino.listino_prezzo)
FROM listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
JOIN diario ON terapia.terapia_diario_id = diario.diario_id
WHERE ((diario.diario_data BETWEEN @data_inizio AND @data_fine)
AND (terapia.terapia_non_eseguito = '0'))
);
SET @importo_fatturato = (
SELECT SUM(listino.listino_prezzo)
FROM listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
LEFT JOIN fattura ON terapia.terapia_fattura_id = fattura.fattura_id
WHERE (fattura.fattura_data BETWEEN @data_inizio AND @data_fine)
);
SET @importo_incassato = (
SELECT SUM(listino.listino_prezzo)
FROM listino
JOIN terapia ON listino.listino_id = terapia.terapia_listino_id
LEFT JOIN fattura ON terapia.terapia_fattura_id = fattura.fattura_id
WHERE ((fattura.fattura_data BETWEEN @data_inizio AND @data_fine)
AND (fattura.fattura_data_pagamento IS NOT NULL))
);
-- Utilizzo delle variabili nella SELECT finale
SELECT
@importo_preventivi AS 'Importo preventivi',
@importo_terapie_eseguite AS 'Importo terapie eseguite',
@importo_fatturato AS 'Importo fatturato',
@importo_incassato AS 'Importo incassato';
";
nuRunQuery("CREATE TABLE #TABLE_ID# $s");