Ciao a tutti
Semplificate, ho queste due tabelle:
in una data possono essere applicati anche più tipi di sconti cumulati, oppure nessuno.codice:TABELLA acquisti (id, prezzo, data) TABELLA acquisti_sconti (data, percentuale_sconto, descrizione)
Eseguo questa query:
Domanda: posso evitare di riscrivere tutta la pappardella cui sto attribuendo l'alias percentuale_sconto_totale nei due campi successivi?codice:SELECT id, prezzo, IF( SUM(percentuale_sconto) IS NULL, 0, SUM(percentuale_sconto) ) as percentuale_sconto_totale, ROUND( prezzo * IF( SUM(percentuale_sconto) IS NULL, 0, SUM(percentuale_sconto) ) / 100 ) as sconto_applicato, prezzo - ROUND( prezzo * IF( SUM(percentuale_sconto) IS NULL, 0, SUM(percentuale_sconto) ) / 100 ) as prezzo_scontato FROM acquisti NATURAL LEFT JOIN acquisti_sconti GROUP BY id
Ho provato ad usare direttamente l'alias così
ma ottengo un #1054 - Unknown column 'percentuale_sconto_totale' in 'field list'.codice:SELECT id, prezzo, IF( SUM(percentuale_sconto) IS NULL, 0, SUM(percentuale_sconto) ) as percentuale_sconto_totale, ROUND( prezzo * percentuale_sconto_totale / 100 ) as sconto_applicato, prezzo - sconto_applicato as prezzo_scontato FROM acquisti NATURAL LEFT JOIN acquisti_sconti GROUP BY id
Ho provato anche ad usare delle variabili
ma il valore delle variabili è sempre 0.codice:SET @miavariabile = 0; SET @miavariabile2 = 0; SELECT id, prezzo, @miavariabile:=IF( SUM(percentuale_sconto) IS NULL, 0, SUM(percentuale_sconto) ) as percentuale_sconto_totale, @miavariabile2:=ROUND( prezzo * @miavariabile/ 100 ) as sconto_applicato, prezzo - @miavariabile2 as prezzo_scontato FROM acquisti NATURAL LEFT JOIN acquisti_sconti GROUP BY id
Suggerimenti?
Grazie![]()


Rispondi quotando