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
PRoblema con una query da 2 tabelle in access 2003
sabato 17 maggio 2008 - 18.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dr.johnny
Profilo
| Newbie
2
messaggi | Data Invio:
sab 17 mag 2008 - 18:04
Ho una situazione del genere devo estrarre da 2 tabelle TAB1 e TAB2 dei dati che appartengono in parte ad entrambi, facendo riferimento ad una chiave
specifica ad esempio il campo NOME dovrei ottenere una query come quella in basso.
Chi saprebbe aiutarmi ?? il db è in ACCESS 2003
TAB1
# NOME CITTA
---------------------------
1 Luigi ROMA
2 Franco MILANO
3 ROBERTO -
4 JOE Londra
---------------------------
TAB2
# NOME PAESE
---------------------------
1 Luigi ITALIA
2 Franco ITALIA
3 ROBERTO FRANCIA
4 RICHARD INGHILTERRA
5 GIACOMO BRASILE
---------------------------
E vorrei ottenere una query che mi ottiene questo risultato:
QUERY
# NOME CITTA PAESE
--------------------------------------------
1 Luigi ROMA ITALIA
2 Franco MILANO ITALIA
3 ROBERTO - FRANCIA
4 JOE Londra -
5 RICHARD - INGHILTERRA
6 GIACOMO - BRASILE
--------------------------------------------
Grazie in anticipo per il supporto e l'aiutoo
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
sab 17 mag 2008 - 20:40
655_nomicittapaesi.zip
Ciao!
>Ho una situazione del genere devo estrarre da 2 tabelle TAB1
>e TAB2 dei dati che appartengono in parte ad entrambi, facendo
>riferimento ad una chiave
>specifica ad esempio il campo NOME dovrei ottenere una query
>come quella in basso.
>Chi saprebbe aiutarmi ?? il db è in ACCESS 2003
Se non fosse ACCESS 2003 ti avrei già risposto "Usa una FULL OUTER JOIN"
Purtroppo non posso farlo e spulciando qui e là per la rete ho trovato alcuni articoli che ti permettono di implementare una FULL OUTER JOIN tramite l'unione di una INNER JOIN, una RIGHT JOIN ed una LEFT JOIN.
In poche parole, con la INNER ricavi quelli che combaciano (legati per nome), con la LEFT OUTER (e un filtro che vedrai nell'allegato) ottieni tutti quelli della tabella di "sinistra" esclusi quelli di destra che combaciano, e con la RIGHT OUTER ottieni il viceversa. A dire il vero puoi usare due LEFT JOIN, basta cambiare l'ordine con cui scrivi le tabelle. Ma il principio è lo stesso.ù
Inoltre ho aggiunto anche una Query per il calcolo dell'autonumber (il tuo #).
Le query sono:
InnerQuery
LeftQuery
RightQuery
QueryUnita
ConteggioAggiunto
Ti ho allegato il db di esempio, spero possa esserti di aiuto..
Ciao!
Grazie in anticipo per il supporto e l'aiutoo
Di nulla!
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
dr.johnny
Profilo
| Newbie
2
messaggi | Data Invio:
dom 18 mag 2008 - 11:22
Alessandro .. nn so come ringraziarti, per il tuo supporto celere.. e per l'allegato, mi hai tolto una grande rogna credimi :D
Io fino alla UNION delle due join c'ero arrivato.. mi mancava solamente far comparire solo un campo NAME nella query finale.
Grazie immensamente ancora. Mi sa che mi vedrete spesso da queste parti
Gianni
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
dom 18 mag 2008 - 14:00
>Alessandro .. nn so come ringraziarti, per il tuo supporto celere..
>e per l'allegato, mi hai tolto una grande rogna credimi :D
Figurati!
>Grazie immensamente ancora. Mi sa che mi vedrete spesso da queste
>parti
Benissimo! E noi saremo qui
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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 !