Aiuto su una query sql

lunedì 11 dicembre 2006 - 11.12

sorio Profilo | Junior Member

Salve a tutti,
ho bisogno di aiuto!

ho un databse con la seguente struttura:

460x204 58Kb


ogni tabella contiene una lista di un codice di un articolo, e la quantita di articoli venduti.
come mostrato nell'immagine:

384x234 51Kb


in pratica ho la necessità di unire le sei tabelle per avere il totale degli articoli venduti per ogni signolo codice articolo.

solamente che mi impappino con l'SQL...anche perchè non tutte le tabelle contengono esattamente gli stessi codici articoli
la tabella 1 ne contiene piu di tutti, via via calando

mi dareste qualche dritta?

lbenaglia Profilo | Guru

>in pratica ho la necessità di unire le sei tabelle per avere
>il totale degli articoli venduti per ogni signolo codice articolo.

Ciao sorio,

secondo me il design del database potrebbe essere rivisto, comunque puoi unire i dati delle sei tabelle utilizzando l'operatore UNION.
Ti allego un esempio scritto in T-SQL per SQL Server 2005 basato su 3 tabelle:

USE tempdb; GO CREATE TABLE dbo.Art1 ( art1 int NOT NULL, artq1 int NOT NULL ); CREATE TABLE dbo.Art2 ( art2 int NOT NULL, artq2 int NOT NULL ); CREATE TABLE dbo.Art3 ( art3 int NOT NULL, artq3 int NOT NULL ); INSERT dbo.Art1 VALUES(1, 10); INSERT dbo.Art1 VALUES(2, 20); INSERT dbo.Art1 VALUES(3, 30); INSERT dbo.Art1 VALUES(3, 35); INSERT dbo.Art2 VALUES(1, 100); INSERT dbo.Art2 VALUES(2, 200); INSERT dbo.Art3 VALUES(3, 300); INSERT dbo.Art3 VALUES(4, 400); SELECT art1 AS CodiceArticolo, SUM(artq1) AS Quantità FROM ( SELECT art1, artq1 FROM dbo.Art1 UNION ALL SELECT art2, artq2 FROM dbo.Art2 UNION ALL SELECT art3, artq3 FROM dbo.Art3 ) AS U GROUP BY art1; GO /* Output: CodiceArticolo Qantità -------------- ----------- 1 110 2 220 3 365 4 400 (4 row(s) affected) */ DROP TABLE dbo.Art1, dbo.Art2, dbo.Art3

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

sorio Profilo | Junior Member

ciao!
grazie...
non avevo pensato ad una union!

in effetti è la soluzione che fa per me!
grazie mille!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5