Newsgroup: it.comp.appl.access
Titolo: Problemi con join

Non sono molto pratica di Access, cmq vengo subito al dunque.
Ho due tabelle che mi rappresentano i movimenti di magazzino, una per l'anno
in corso e una per l'anno precedente.
Devo creare una query che mi faccia il confronto tra i due anni,
con le seguenti colonne: cliente, prodotto, totale anno precedente, totale
anno in corso.
Tuttavia facendo un semplice join tra i campi cliente e prodotto delle due
tabelle escludo i record con i totali vuoti di entrambe le tabelle; con un
left (o right) o un inner join invece riesco ad avere tutti i record non
nulli dell'anno in corso, mentre dell'anno precedente ho sě anche i record
con i totali vuoti, ma mi mancano i clienti con i totali vuoti nell'anno in
corso.
Spero di essermi spiegata, e ringrazio in anticipo a chi puň aiutarmi.
Valeria


In questo caso, la tabella principale deve essere la tabella Clienti.
devi fare una query raggruppata per cliente ProdottiAnnoInCorso, e un'altra
sempre raggruppata per cliente ProdottiAnnoPrecedente.
Poi apri una nuova query che userà come tabelle la tabella Clienti e con
join esterno le due query legate per codice cliente.
come campi prendi Cliente da clienti e valori da tutte e due le query ed il
gioco è fatto.
saluti
GB

 wrote in message
news:0eRD6.168422$lj4.5...@news6.giganews.com...
Se tu ti chiami veramente Valeria Dal Monte io sono Nancy Davolio!!!!:-)))))
Saluti.
Luciano
(DOC)

 wrote in message
zBSD6.168488$lj4.5...@news6.giganews.com...

ROTFL
:-)))))))))))))))))))))))))))
Ciao. Luciana

 ha scritto nel messaggio
news:zBSD6.168488$lj4.5...@news6.giganews.com...

Chiaro che non mi chiamo cosě... tu ti chiami forse Luciano (DOC)? ;)))
Ciao,
Valeria Dal Monte

 wrote in message
gcXD6.168932$lj4.5...@news6.giganews.com...

Aaahhhh, 'ste manie dell'anonimato...
Bah....
Antonio

 Bah....
Ma che mania dell'anonimato? ;)
Il mio č un nick, poco originale, ma pur sempre un nick.
Ciao,
Valeria

 Chiaro che non mi chiamo cosě... tu ti chiami forse Luciano (DOC)? ;)))
No, te l'lho detto, mi chiamo Nancy Davolio, e se sei pratica di Access sai
pure bene chi sono!:-))
Saluti.
Nancy
(DOC)

 Saluti.
ROTFL!
Ale

 ha scritto nel messaggio
news:9boori$80h$1...@pegasus.tiscalinet.it...

Ti ringrazio molto Gustavo, adesso però è sorto un altro problema.
Come scritto mi interessa, oltre al campo clienti, anche il campo prodotto
(articolo); in pratica la query mi dovrebbe dare, per ogni record: cliente,
articolo, totale anno precedente, totale anno attuale. Chiaramente il campo
cliente deve essere ripetuto per ogni tipologia di articolo acquistato dal
cliente o nel 2000 o nel 2001.
Considerando le query dei due anni solo clienti e totale ho seguito le tue
istruzioni e funziona. Se però aggiungo alle query dei due anni anche il
campo articolo, quando vado a pescare da queste ultime nella query
riassuntiva mi escono fuori i valori duplicati; se creo un join di
corrispondenza esatta tra i campi articolo delle query dei due anni, Access
mi dà errore SQL (join esterni ambigui); stesso errore che mi da se aggiungo
alla query la tabella articoli e la joino allo stesso modo della tabella
clienti alle due query.
Spero di essermi spiegata meglio.
Ciao e grazie,
Valeria

 ha scritto nel messaggio
news:B%XD6.169027$lj4.5...@news6.giganews.com...

No, come detto non lo sono :(
Ciao,
Valeria

 No, come detto non lo sono :(
Diciamo che Nancy Davolio sta ad Access come Valeria Dal Monte sta ad
Outlook versione italiana....:-))
Tua,
Nancy
(DOC)


Penso che con le due tabelle in join non cavi un ragno da un buco.
Se le tue due tabelle si chiamano Tabella1 e Tabella2 ed ambedue hanno la
seguente struttura:
ID                Contatore e chiave primaria
IDCliente      Numerico
IDProdotto   Numerico
Importo        Numerico
Creati prima una query unione chiamata Query1 che abbia il seguente codice
SQL:
SELECT Tabella1.IDCliente, Tabella1.IDProdotto, Tabella1.Importo, 0 AS
Importo1
FROM Tabella1
UNION SELECT Tabella2.IDCliente, Tabella2.IDProdotto, 0 AS Importo,
Tabella2.Importo AS Importo1
FROM Tabella2;
Creati una seconda query di raggruppamento (quella che ti darà il risultato
cercato) basata su Query1, raggruppando su IDCliente e su IDProdotto, che
avrà quindi il seguente codice SQL:
SELECT Query1.IDCliente, Query1.IDProdotto, Sum(Query1.Importo) AS
ImportoAnnoInCorso, Sum(Query1.Importo1) AS ImportoAnnoPrecedente
FROM Query1
GROUP BY Query1.IDCliente, Query1.IDProdotto;
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

>"Valeria Dal Monte" > Non sono molto pratica di >Access, cmq vengo subito
al dunque.
Di cosa sei pratica tesoro?  :-))
Saluti, Antonio


SNIP
Ti ringrazio moltissimo, era esattamente quello che mi serviva.
Ciao,
Valeria