|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[MySQL] Come posso effettuare questo semplice calcolo con una query?
Salve a tutti,
supponiamo di avere una tabella 'ACQUISTI' come la seguente: Codice:
+-------------+----------+----------------+ | MATERIALE | QUANTITA | COSTO_UNITARIO | +-------------+----------+----------------+ | materiale_1 | 25 | 1.00 | | materiale_2 | 5 | 15.00 | | materiale_3 | 7 | 32.00 | | materiale_4 | 7 | 55.00 | | materiale_5 | 4 | 2.00 | | materiale_6 | 10 | 3.00 | | materiale_7 | 10 | 4.00 | +-------------+----------+----------------+ Ovvero, fare 25*1+5*15+....+10*4=787. So che si possono fare delle operazioni ma non sono molto ferrato Qualcuno lo sa? |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
imposta una SELECT in cui una delle colonne è creata dall'operatore Codice:
SUM(<colonna di cui sommare le righe>) Questo operatore restituisce la sommatoria di tutte le righe di <colonna di cui sommare le righe>. <colonna di cui sommare le righe> può essere una singola colonna oppure un insieme di colonne con in mezzo operatori aritmetici (nel tuo caso "*" )... guarda anche http://www.w3schools.com/sql/sql_func_sum.asp per l'uso "base" di SUM() ciao! british |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Grazie! Non sapevo potessi fare
Codice:
SUM(QUANTITA*COSTO_UNITARIO) AS SOMMA Grazie ancora! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
il modo più semplice è quello di avere una quarta colonna SUBTOT, calcolata da una stored procedure,
e poi con una select fai la somma dei valori di quella colonna select sum(subtot) from acquisti edit: dovrebbe essere anche accettata direttamente la query select sum(quantità * costo_unitario) from acquisti Ultima modifica di lupoxxx87 : 20-04-2010 alle 13:35. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ehm, non mi sembra tanto semplice...
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Eh ma infatti! È il metodo che ho adottato!
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
ti funziona ?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Sembrerebbe proprio di sì!!!
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
puoi anche fare le singole * e poi fare il totale
select MATERIALE, QUANTITA*COSTO_UNITARIO as 'COSTO' from ACQUISTI union select 'TOTALE', SUM(QUANTITA*COSTO_UNITARIO) from ACQUISTI
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Grazie, sembra comunque che le cose funzionino abbastanza bene.
In realtà ciò che ho chiesto inizialmente mi serviva di aiuto per risolvere un altro problema, ma sono rimasto "fregato" per il momento. La situazione è questa: Ho n magazzini e sono tutti memorizzati nella tabella magazzini: Codice:
MAGAZZINI +-------------+-------+ | NOME_MAG | SEDE | +-------------+-------+ | magazzino_1 | sede1 | | magazzino_2 | sede2 | | magazzino_3 | sede3 | | magazzino_4 | sede4 | | magazzino_5 | sede5 | | magazzino_6 | sede6 | | magazzino_7 | sede7 | +-------------+-------+ Codice:
MATERIALI_ASSEGNATI_AI_MAGAZZINI +-------------+-------------+----------+----------------+ | NOME_MAG | MATERIALE | QUANTITA | COSTO_UNITARIO | +-------------+-------------+----------+----------------+ | magazzino_1 | materiale_1 | 25 | 1.00 | | magazzino_1 | materiale_2 | 5 | 15.00 | | magazzino_1 | materiale_3 | 7 | 32.00 | | magazzino_2 | materiale_4 | 7 | 55.00 | | magazzino_3 | materiale_5 | 4 | 2.00 | | magazzino_6 | materiale_6 | 10 | 3.00 | | magazzino_6 | materiale_7 | 10 | 4.00 | +-------------+-------------+----------+----------------+ In questo caso, vorrei una query che mi restituisse questo risultato: Codice:
COSTO MAGAZZINI +-------------+-------+----------------+ | NOME_MAG | SEDE | COSTO_TOTALE | +-------------+-------+----------------+ | magazzino_1 | sede1 | 324.00 | | magazzino_2 | sede2 | 385.00 | | magazzino_3 | sede3 | 8.00 | | magazzino_4 | sede4 | 0.00 | | magazzino_5 | sede5 | 0.00 | | magazzino_6 | sede6 | 70.00 | | magazzino_7 | sede7 | 0.00 | +-------------+-------+----------------+ Grazie! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi usare GROUP BY. Però queste cose le trovi su qualsiasi manuale base di sql
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
select sede.nome_mag, sede.sede, sum(acquisti.quantita*acquisti.costo_unitario) from sede, acquisti where sede.nome_mag=acquisti.nome_mag group by sede.sede, sede.nome_mag
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Grazie!
Funziona tutto correttamente! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:34.




















