INNER JOIN tra database diversi.

martedì 03 giugno 2008 - 11.41

secks Profilo | Senior Member

Ho una query con 2 tabelle di 2 database diversi in ACCESS legate da una INNER JOIN.
Dove devo mettere nella query l'indirizzo dei database per fare in modo che la seconda tabella sia vista (Es: c:\prova\DBase\prova.mdb)?

SELECT PRO.*, VEN.*
FROM [SELECT * FROM AnaPro WHERE (((AnaPro.pro_num)='02235' AND AnaPro.pro_dti = #04/02/2008# AND AnaPro.pro_dtf = #04/30/2008#))]. AS PRO INNER JOIN [SELECT * FROM StaArt WHERE (((StaArt.sta_day) >= #04/02/2008# AND (StaArt.sta_day) <= #04/30/2008#))

So farlo con una LEFT JOIN :

LEFT JOIN [c:\auxpv\auxdb\aux_tab.mdb;pwd=PIPPO].AnaRep ON anaart.art_rep

ma non riesco a farlo con la suddetta INNER JOIN.

Ciao e grazie.
Paolo.

lbenaglia Profilo | Guru

>SELECT PRO.*, VEN.*
>FROM [SELECT * FROM AnaPro WHERE (((AnaPro.pro_num)='02235' AND
>AnaPro.pro_dti = #04/02/2008# AND AnaPro.pro_dtf = #04/30/2008#))].
>AS PRO INNER JOIN [SELECT * FROM StaArt WHERE (((StaArt.sta_day)
>>= #04/02/2008# AND (StaArt.sta_day) <= #04/30/2008#))
>
>So farlo con una LEFT JOIN :
>
>LEFT JOIN [c:\auxpv\auxdb\aux_tab.mdb;pwd=PIPPO].AnaRep ON anaart.art_rep
>
>ma non riesco a farlo con la suddetta INNER JOIN.

Ciao Paolo,

Dovrebbe essere la stessa identica cosa.
Inoltre quella query potrebbe essere riscritta in modo più efficiente anche se non capisco cosa sia AnaRep dato che non compare nella query.
Puoi postare i due mdb indicando in quale db devi scrivere la query che punta al secondo?

>Ciao e grazie.
Prego.

Ciao!

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

secks Profilo | Senior Member

La query completa eseguita con l'mdb VEN aperto è la seguente:

SELECT *
FROM [SELECT * FROM AnaPro WHERE (((AnaPro.pro_num)='02235' AND AnaPro.pro_dti = #04/02/2008# AND AnaPro.pro_dtf = #04/30/2008#))]. AS PRO INNER JOIN [SELECT * FROM StaArt WHERE (((StaArt.sta_day) >= #04/02/2008# AND (StaArt.sta_day) <= #04/30/2008#))]. AS VEN ON PRO.pro_art = VEN.sta_art;

se la modifico aggiungendo

SELECT *
FROM [SELECT * FROM

[c:\auxpv\auxdb\aux_ana.mdb;pwd=PIPPO].AnaPro

WHERE (((AnaPro.pro_num)='02235' AND AnaPro.pro_dti = #04/02/2008# AND AnaPro.pro_dtf = #04/30/2008#))]. AS PRO INNER JOIN [SELECT * FROM StaArt WHERE (((StaArt.sta_day) >= #04/02/2008# AND (StaArt.sta_day) <= #04/30/2008#))]. AS VEN ON PRO.pro_art = VEN.sta_art;

mi da errore sulla FROM

Come posso impostare il percorso del database aux_ana per AnaPro?

Ciao e grazie.
Paolo.

lbenaglia Profilo | Guru

>Come posso impostare il percorso del database aux_ana per AnaPro?
Prima ho scritto: "Puoi postare i due mdb indicando in quale db devi scrivere la query che punta al secondo?"
Se ci fornisci i due db di esempio con le info richieste faremo qualche prova, altrimenti io non saprei come aiutarti.

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

secks Profilo | Senior Member

Ho risolto!

SELECT *
FROM [SELECT * FROM

invece di
[c:\auxpv\auxdb\aux_ana.mdb;pwd=PIPPO].AnaPro

funziona scrivendo :

[;Database=c:\auxpv\auxdb\aux_ana.mdb;pwd=GRPAUX].AnaPro

WHERE (((AnaPro.pro_num)='02235' AND AnaPro.pro_dti = #04/02/2008# AND AnaPro.pro_dtf = #04/30/2008#))]. AS PRO INNER JOIN [SELECT * FROM StaArt WHERE (((StaArt.sta_day) >= #04/02/2008# AND (StaArt.sta_day) <= #04/30/2008#))]. AS VEN ON PRO.pro_art = VEN.sta_art;

cha va sempre davanti alla tabella da cui si estraggono i dati.

Ciao e grazie.
Paolo.
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5