Ciao a tutti, spero possiate aiutarmi, perchè non capisco dove sto sbagliando.
Eseguo su MySQL due query praticamente identiche tranne nel calcolo tra parametri (vedi alias output1 e output2) e nella condizione WHERE e che restituiscono entrambe gli output esatti:
Query #1
Output Query #1 (Corretto)codice:SELECT C.MCR_Cod , C.MCR_Clt , C.MCR_Den , IF(R.Art = '51M', '51M' , IF(R.Art = '450', 'MT', 'BT')) Origen , SUM(R.BT*R.sec/60/C.CLIENTIES) Output1 FROM _tbl1 R INNER JOIN _tbl2 C ON R.CFT_Cod = C.CFT_Cod WHERE 1 AND C.MCR_Cod ='DCE' AND R.CDI='P' GROUP BY C.MCR_Cod , C.MCR_clt , IF (R.Art = '51M', '51M' , IF (R.Art = '450','MT','BT'));
Query #2codice:MCR_Cod MCR_Clt MCR_Den Origen Output1 DCE 9542743 DCE 51M 0,0444 DCE 9542743 DCE BT 2,9057 DCE 9542743 DCE MT 3,5561
Output Query #2 (Corretto)codice:SELECT C.MCR_Cod , C.MCR_Clt , C.MCR_Den , IF(R.Art = '51M', '51M' , IF(R.Art = '450', 'MT', 'BT')) Origen , SUM(R.BT/C.CLIENTIES) Output2 FROM _tbl1 R INNER JOIN _tbl2 C ON R.CFT_Cod = C.CFT_Cod WHERE 1 AND C.MCR_Cod ='DCE' AND R.CDI In('P','B') GROUP BY C.MCR_Cod , C.MCR_clt , IF (R.Art = '51M', '51M' , IF (R.Art = '450','MT','BT'));
Adesso sto provando ad eseguire una query #3 (query #1 più query #2):codice:MCR_Cod MCR_Clt MCR_Den Origen Output2 DCE 9542743 DCE 51M 0,0284 DCE 9542743 DCE BT 0,0382 DCE 9542743 DCE MT 0,4362
Query #3
Output Query #3 (Sbagliato)codice:SELECT C.MCR_Cod , C.MCR_Clt , C.MCR_Den , IF(R.Art = '51M', '51M' , IF(R.Art = '450', 'MT', 'BT')) Origen , CASE 1 WHEN R.CDI='P' THEN SUM(R.BT*R.sec/60/C.CLIENTIES) END Output1 , CASE 2 WHEN R.CDI In('P','B') THEN SUM(R.BT/C.CLIENTIES) END Output2 FROM _tbl1 R INNER JOIN _tbl2 C ON R.CFT_Cod = C.CFT_Cod WHERE 1 AND C.MCR_Cod ='DCE' GROUP BY C.MCR_Cod , C.MCR_clt , IF (R.Art = '51M', '51M' , IF (R.Art = '450','MT','BT'));
Mi aspettavo questo output #3 con la query #3 (Come dovrebbe essere):codice:MCR_Cod MCR_Clt MCR_Den Origen Output1 Output2 DCE 9542743 DCE 51M null null DCE 9542743 DCE BT 2.9057 null DCE 9542743 DCE MT null null
Perchè succede questo?codice:MCR_Cod MCR_Clt MCR_Den Origen Output1 Output2 DCE 9542743 DCE 51M 0,0444 0,0284 DCE 9542743 DCE BT 2.9057 0,0382 DCE 9542743 DCE MT 3,5561 0,4362
Avete qualche idea da suggerirmi?
Grazie mille
M.A.R.

Rispondi quotando