Query Access - estrazione campi rispetto a Sql Server

martedì 27 ottobre 2009 - 12.58

Teo Profilo | Junior Member

Ciao a tutti,
ho un problema stupido con Access; ho creato questa query:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Funziona, pero' nel caso nella tabella in left join ArtFisca non vi siano record con lo stesso articolo, non viene estratto niente: se tolgo il filtro sull'esercizio AND ((dbo_ArtFisca.Esercizio)=2009)), invece mi viene restituito correttamente il record.

Ora in SQL, aggiungendo semplicemente questa clausola alla join, funzionerebbe:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In Access come funziona? Facendo questa modifica alla query mi dice "Espressione Join non supportata."

Altre strade?
Grazie.

alx_81 Profilo | Guru

>Ciao a tutti,
ciao

>In Access come funziona? Facendo questa modifica alla query mi
>dice "Espressione Join non supportata."
premesso che nella seconda c'è un errore:
LEFT JOIN dbo_ArtFisca ON QCosti.Articolo = dbo_ArtFisca.Articolo [b[AND dbo_ArtFisca.Esercizio = 2009[/b]
con quel tentativo di "bold" cosa cambia dalla prima alla seconda?

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

Teo Profilo | Junior Member

Grazie, ho modificato le due query: in pratica nella query di sql invece di usare la condizione where per filtrare l'anno, lo passo come argomento della join.

In Access, invece, sono costretto ad usare la clausola WHERE per filtrare il 2009, ma cosi' facendo nonostante l'uso della LEFT JOIN, se non ci sono record che soddisfano quella condizione, non viene estratto nulla.

Spero di essere riuscito a spiegarmi. :)

Grazie per eventuali suggerimenti.

alx_81 Profilo | Guru

>In Access, invece, sono costretto ad usare la clausola WHERE
>per filtrare il 2009, ma cosi' facendo nonostante l'uso della
>LEFT JOIN, se non ci sono record che soddisfano quella condizione,
>non viene estratto nulla.
postami la seconda query indentata un pochino e corretta da sql. Se va su sql server, è molto probabile che vada anche su access.
Dovresti però farmi la create delle tabelle in gioco, qualche insert di prova e quello che vuoi ottenere. Poi proviamo a scrivere la query.

--

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