Problema:
vuoi moltiplicare i valori da due colonne di una tabella.
Esempio:
Il nostro database ha una tabella denominata purchase
con i dati nelle seguenti colonne:id
, name
, price
, quantity
e discount_id
.
id | prezzo | quantità | discount_id | |
---|---|---|---|---|
1 | penna | 7 | 3 | 1 |
2 | taccuino | 5 | 8 | 2 |
3 | gomma | 11 | 3 | 1 |
4 | astuccio | 24 | 2 | 3 |
Moltiplichiamo il prezzo per la quantità dei prodotti per scoprire quanto hai pagato per ogni articolo del tuo ordine.
Soluzione:
SELECT name, price*quantity AS total_price FROM purchase;
Questa query restituisce record con il nome del prodotto e il suo prezzo totale:
nome | prezzo_totale |
---|---|
penna | 21 |
notebook | 40 |
gomma | 33 |
astuccio | 48 |
Discussione:
Devi selezionare il nome di ogni record (nel nostro caso, name
) e calcola per essa il risultato della moltiplicazione di una colonna numerica per un'altra (price
e quantity
)? Tutto quello che devi fare è utilizzare l'operatore di moltiplicazione (*) tra le due colonne moltiplicando (price
* quantity
) in un semplice SELECT
interrogazione. Puoi dare a questo risultato un alias con AS
parola chiave; nel nostro esempio, abbiamo assegnato alla colonna della moltiplicazione un alias di total_price
.
Tieni presente che puoi anche utilizzare i dati di due colonne provenienti da tabelle diverse. Abbiamo un'altra tabella nel nostro database chiamata discount
che ha colonne denominate id
e value
; quest'ultimo rappresenta la percentuale di sconto sull'articolo con l'ID specificato.
id | valore |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Guarda l'esempio qui sotto.
Soluzione:
SELECT p.name, p.price*p.quantity*(100-d.value)/100 AS total_price FROM purchase p JOIN discount d ON d.id=p.discount_id;
Ecco il risultato:
nome | prezzo_totale |
---|---|
penna | 18.90 |
taccuino | 32.00 |
gomma | 29.70 |
astuccio | 33.60 |
Come puoi vedere, è abbastanza facile moltiplicare valori da diverse tabelle unite. Nel nostro esempio sopra, abbiamo moltiplicato il prezzo di ogni prodotto per la sua quantità da una tabella (purchase
) e quindi moltiplicato questo prezzo totale per la percentuale di sconto utilizzando lo discount
tabella.