PRoblema con una query da 2 tabelle in access 2003

sabato 17 maggio 2008 - 18.04

dr.johnny Profilo | Newbie

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

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

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

>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
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