Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-05-2011, 21:54   #1
Mozaic83
Member
 
L'Avatar di Mozaic83
 
Iscritto dal: May 2009
Città: Como
Messaggi: 70
[MySQL] Realizzare query su più tabelle

Ciao a tutti,
ho iniziato da poco lo studio di SQL e mi sono bloccato sulla realizzazione di una query fatta su più tabelle

Sto esercitandomi in locale su MySQL server (5.1.54-1ubuntu4)

Ho creato un database e ho inserito 3 tabelle (Clienti - Ordini - Dettagli_Ordine).
E' un esempio che ho costruito io, prendendo spunto da un testo.

- Clienti (IDcliente, nome_cli, indirizzo, città, provincia, cap)
=> Primary Key IDcliente

- Ordini (IDordine, IDcliente, data_spedizione, stato_sped, num_sped, corriere)
=> Primary Key IDordine - Foreign Key IDcliente verso Clienti.IDcliente

- Dettagli_Ordine (IDordine, IDarticolo, num_pezzi, costo_pezzo)
=> Foreign Key IDordine verso Ordini.IDordine

La tabella Dettagli_Ordine può contenere più volte la stessa voce IDordine, perchè un ordine può essere la somma di più articoli

Codice:
>select * from Dettagli_Ordine;
+----------+------------+--------------+--------------+
| IDordine | IDarticolo | num_pezzi |   costo_pezzo |
+----------+------------+--------------+--------------+
|        1 |    art210 |           25 |         10.00| 
|        1 |    art401 |           50 |         2.55 |
+----------+------------+--------------+------------+
Vorrei essere in grado di vedere una tabella con questi risultati:
nome_cli - IDordine - ImportoTotaleOrdine

esempio
cliente1 - 1 - 377.50 ===> ((25pezzi dell'art210 a 10 cad)+(50pezzi dell'art401 a 2.55cad))

E' possibile ?

Io avevo pensato a questa query con una tabella derivata (nome tcalc)

Codice:
SELECT tcalc.* FROM (SELECT Ordini.IDcliente AS 'Codice Cliente', Ordini.IDordine AS 'Codice Ordine', 
 SUM(Dettagli_Ordine.num_pezzi * Dettagli_Ordine.costo_pezzo) AS 'Totale Ordine' 
  FROM Ordini, Dett_Ord WHERE Ordini.IDordini=Dett_Ord.IDordini ) AS tcalc;
ma appunto mi mette solo il Codice Cliente e non il suo nome e non riesco a mettere giù il collegamento tra la tabella virtuale e la tabella Clienti (tra l'altro si può fare o è proprio sbagliata in partenza la query ?)
Mozaic83 è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2011, 00:34   #2
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Tutti i dati:
Codice:
SELECT Clienti.nome_cli, Ordini.IDordine, Dettagli_Ordine.IDarticolo, Dettagli_Ordine.num_pezzi * Dettagli_Ordine.costo_pezzo AS ImportoRiga
FROM Clienti
	INNER JOIN Ordini
		ON Clienti.IDcliente = Ordini.IDcliente
	INNER JOIN Dettagli_Ordine
		ON Ordini.IDordine = Dettagli_Ordine.IDordine
Raggruppamento su IDordine con somma costo * qtà (quello che cerchi):
Codice:
SELECT Clienti.nome_cli, Ordini.IDordine, SUM( Dettagli_Ordine.num_pezzi * Dettagli_Ordine.costo_pezzo ) AS ImportoTotaleOrdine
FROM Clienti
	INNER JOIN Ordini
		ON Clienti.IDcliente = Ordini.IDcliente
	INNER JOIN Dettagli_Ordine
		ON Ordini.IDordine = Dettagli_Ordine.IDordine
GROUP BY IDordine
Mostrando ordini vuoti:
Codice:
SELECT Clienti.nome_cli, Ordini.IDordine, SUM( Dettagli_Ordine.num_pezzi * Dettagli_Ordine.costo_pezzo ) AS ImportoTotaleOrdine
FROM Clienti
	INNER JOIN Ordini
		ON Clienti.IDcliente = Ordini.IDcliente
	LEFT OUTER JOIN Dettagli_Ordine
		ON Ordini.IDordine = Dettagli_Ordine.IDordine
GROUP BY IDordine
Mostrando anche clienti che non hanno fatto ordini:
Codice:
SELECT Clienti.nome_cli, Ordini.IDordine, SUM( Dettagli_Ordine.num_pezzi * Dettagli_Ordine.costo_pezzo ) AS ImportoTotaleOrdine
FROM Clienti
	LEFT OUTER JOIN Ordini
		ON Clienti.IDcliente = Ordini.IDcliente
	LEFT OUTER JOIN Dettagli_Ordine
		ON Ordini.IDordine = Dettagli_Ordine.IDordine
GROUP BY IDordine
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2011, 09:45   #3
Mozaic83
Member
 
L'Avatar di Mozaic83
 
Iscritto dal: May 2009
Città: Como
Messaggi: 70
Grazie mille, anche per gli altri esempi !
Rendevo io tutto difficile
Mozaic83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Il telescopio XRISM ha osservato i raggi...
Il telescopio spaziale James Webb ha sco...
Logitech G325: audio di fascia alta, wir...
Nessuna pubblicità su Claude, per...
Gli stipendi nel settore tech? Sono anco...
Problemi con la stampa 3D? Un prompt per...
Amazon Leo amplia i contratti con SpaceX...
Basta Purefication, il Giurì bloc...
LibreOffice 26.2 migliora prestazioni e ...
La Cina si prepara a un test della capsu...
La NASA rende note alcune informazioni a...
ASUS ExpertCenter PN54: mini PC Copilot+...
Geely userà una fabbrica europea ...
Leica Camera tratta la cessione della ma...
La nuova AMD non è più 'ec...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v