Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Eseguire una insert selezionando dati da due tabelle differenti
domenica 08 maggio 2011 - 23.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jtpsala
Profilo
| Senior Member
206
messaggi | Data Invio:
dom 8 mag 2011 - 23:30
Un saluto a tutti gli utenti di questo Forum!
Volevo chiedere come è possibile creare una query che inserisca dei dati in una tabella selezionandoli da due altre tabelle diverse.
Utilizzo Sql Server 2005 Express.
Esempio:
La tabella3 dove dovranno essere raggruppati tutti i dati è formata da:
Campi (A, B, C, A1, B1, C1, Progressivo, Record).
La tabella1 da dove devono essere selezionati alcuni dati è formata da:
Campi (A, B, C, Progressivo, Record).
La tabella2 da dove devono essere selezionati altri dati è formata da:
Campi(A1, B1, C1, Progressivo, Record).
Il valore del campo Progressivo contenuto nella tabella1 e tabella2 contiene ad esempio 1, 2, 3 e cosi via... Tale valore può essere ripetuto anche in più record (1, 1, 1, 2, 2, ecc...)
Il valore contenuto nel campo Record invece è univoco esempio ogni riga contiene un valore di tipo 01, 02, 03...
------
Progressivo Record
1 01
1 02
1 03
2 01
3 01
3 02
------
Io dovrei nella tabella3 raccogliere in un'unica riga i valori selezionati dalla tabella2 e dalla tabella3 distinti per il campo Progressivo e Record esempio:
----
A B C A1 B1 C1 Progressivo Record
q f g h e f 1 01
q f g h e f 1 02
q f g h e f 1 03
d r h u t u 2 01
e cosi via...
Vi ringrazio tutti in anticipo per la gentile collaborazione.
Pippo
jenga
Profilo
| Newbie
44
messaggi | Data Invio:
lun 9 mag 2011 - 10:38
Quindi la tua chiave è Progressivo - Record
Cosa succede se nella tabella1 esiste la chiave e nella tabella2 no?
I campi A1, B1, C1 della tabella finale che valori devono avere? o non deve comparire il record per quella chiave?
Lo stesso se la situazione è la duale (chiave esistente nella tabella2 e non nella tabella1): cosa deve essere scritto nella tabella3?
--
Igor Brusetti
http://jenga.wordpress.com
jtpsala
Profilo
| Senior Member
206
messaggi | Data Invio:
lun 9 mag 2011 - 17:13
Grazie per aver risposto!
allora nella tabella1 i valori contenuti nei campi Progressivo e Record sono identici a quelli contenuti nella tabella2.
In pratica io dovrei riempire la tabella3 selezionando i valori contenuti nei campi A, B e C della tabella1 che hanno come valore nel campo Progressivo e Record uguali a quelli contenuti nella tabella2 e da quest'ultima importare i valori contenuti nei campi A1, B1 e C1.
Esempio:
Tabella1
Campi:
A, B, C, Progressivo, Record
4 4 4 1 01
4 4 4 1 02
4 4 4 2 01
Tabella2
Campi:
A1, B1, C1, Progressivo, Record
4 4 4 1 01
4 4 4 1 02
4 4 4 2 01
Tabella3
Campi:
A, B, C, A1, B1, C1, Progressivo, Record
4 4 4 4 4 4 1 01
4 4 4 4 4 4 1 02
4 4 4 4 4 4 2 01
Diciamo che il campo Progressivo della tabella1 e tabella2 possono contenere dei identici, mentre sono univoci i valori contenuti nei campi Record.
Spero di essermi spiegato.
Ringrazio in anticipo.
Pippo
jenga
Profilo
| Newbie
44
messaggi | Data Invio:
mar 10 mag 2011 - 09:07
No, non era questa la mia domanda.
Ammettiamo che le tue tabelle 1 e 2 abbiano questi dati:
Tabella1
Campi:
A, B, C, Progressivo, Record
4 4 4 1 01
5 5 5 1 02
6 6 6 2 01
Tabella2
Campi:
A1, B1, C1, Progressivo, Record
3 3 3 1 01
2 2 2 1 02
La tabella 3 deve contenere i dati per Progressivo=2, Record=01 ?
Se deve contenere anche questo record (che esiste solo in una tabella origine) avrai una query del tipo:
SELECT A, B, C, A1, B1, C1, Progressivo, Record
FROM Tabella1
LEFT OUTER JOIN Tabella2
ON Tabella1.Record = Tabella2.record
AND Tabella1.Progressivo = Tabella2.Progressivo
e il risultato sarà il seguente:
A, B, C, A1, B1, C1, Progressivo, Record
4 4 4 3 3 3 1 01
5 5 5 2 2 2 1 02
6 6 6 null null null 2 01
altrimenti va cambiata la JOIN che lega le due tabelle.
--
Igor Brusetti
http://jenga.wordpress.com
Torna su
Stanze Forum
Elenco Threads
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 !