Newsgroup: it.comp.appl.access
Titolo: query di selezione di access

     Ho un problema nel realizzare una query di ricerca valori non corispondenti
fra due tabelle. Nella prima ci sono i campi: Data, Dipendente, Turno,
Dalle, Alle. La query dovrebbe esprimere il risultato dei records che non
sono presenti nella seconda. Nella seconda i campi hanno lo stesso nome,
contiene dei records identici che vorrei non fossero presi in considerazione
dalla query e records diversi, in certi casi totalmente, in certi casi solo
riguardante il valore di uno o più campi e propio questi vorrei poter
selezionare.
Potrebbe essere molto semplice per qualcuno ma purtroppo non riesco a
tirarne fuori le gambe.
Grazie per l'aiuto.
Saluti Fabrizio
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Ho creato una Tabella1 contenente questi dati
data dipendente turno dalle alle
01/02/2005 aaaaaa a 8.08 15.30
02/04/2005 bbbbbb a 12.15 13.45
03/01/2005 cccccc b 15.30 18.20
05/05/2005 dddddd b 18.20 20.40
03/02/2005 eeeeee c 10.00 11.00
e una Tabella2 contenente i soli primi tre e il quinto con una modifica
data dipendente turno dalle alle
01/02/2005 aaaaaa a 8.08 15.30
02/04/2005 bbbbbb a 12.15 13.45
03/01/2005 cccccc b 15.30 18.20
04/02/2005 eeeeee c 10.00 15.00
Ho fatto una query così
SELECT Tabella1.*
FROM Tabella1 LEFT JOIN Tabella2 ON (Tabella1.dipendente =
Tabella2.dipendente) AND (Tabella1.data = Tabella2.data)
WHERE (((Tabella2.dipendente) Is Null));
e mi mostra solo il quarto e il quinto record, cioè quello non presente in
Tabella2, e quello che in Tabella2 ha un valore [data] diverso per il
dipendente "eeeeee".
Nella query di esempio, ho messo in relazione i soi due campi [data] e
[dipendente], supponendo che siano quelli su cui vuoi fare i confronti. In
caso contrario puoi fare le opportune modifiche.
Poi mi è venuta una perplessità. Credo che lo stesso dipendente abbia più
record con date e orari diversi. La mia query non produce guai.
Ho aggiunto questo record in entrambe le tabelle
data dipendente turno dalle alle
05/05/2005 bbbbbb c 11.00 12.00
che non dovrebbe comparire perchè replicato. E infatti è andata bene.
Ho due disagi. Il primo è la mancanza di n mero di record che eviti
associazioni non previste. La seconda è il campo [data]: quel nome potrebbe
essere frainteso da Access ed è meglio chiamarlo "giorno" o qualcosa del
genere.
Aggiungendo un campo [num] alle tabelle, ho fatto una query così
SELECT Tabella1.*
FROM Tabella1 LEFT JOIN Tabella2 ON Tabella1.num = Tabella2.num
WHERE (((Tabella2.data) Is Null) AND ((Tabella2.dipendente) Is Null)) OR
(((Tabella2.data)<>[tabella1].[data])) OR
(((Tabella2.dipendente)<>[tabella1].[dipendente]));
in cui la relazione è su quel campo e il confronto è sempre su data e
dipendente.
Ho anche provato ad aggiungere due record con pari data e dipendenti
diversi. Tutto bene. Credo che si tratti di verificare il modo in cui i dati
di Tabella1 sono riportati con modifiche in Tabella2 per evitare guai.
Prova a giocarci.
Ciao
Riccardo


 Saluti Fabrizio
Creati una query con l'Autocomposizione ricerca dati non corrispondenti.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------


      Perfetto! Però ho dovuto fare una query di raduno dei dati. Non Chiedermi di
spiegarlo! Non riuscirei! In ogni caso funziona bene. Ho Utilizzato poi due
reports dove su uno ci sono i turni originali e sull'altro i turni variati.
Grazie ancora Ciao. Fabrizio


                    Il 28 Giu 2005, 11:52, 
rebi...@libero.it
 (Riccardo Baldinotti) ha scritto:
