Confrontare due tabelle e trovare record senza corrispondenze

A volte può essere necessario confrontare due tabelle e identificare i record in una tabella per cui non esistono record corrispondenti nell'altra tabella. Il modo più semplice per identificare questi record è usare la Creazione guidata Query ricerca dati non corrispondenti. Dopo la creazione della query è possibile modificarne la struttura per aggiungere o rimuovere campi o per aggiungere join tra le due tabelle per indicare i campi i cui valori dovrebbero corrispondere. È anche possibile creare una query personalizzata per trovare i record non corrispondenti senza usare la creazione guidata.

Questo articolo descrive come avviare ed eseguire la Creazione guidata Query ricerca dati non corrispondenti, come modificare l'output della creazione guidata e come creare una query personalizzata per trovare i record non corrispondenti.

Nota : La Creazione guidata Query ricerca dati non corrispondenti non è supportata nelle app Web o nei database Web di Access.

Contenuto dell'articolo

Quando è utile cercare i record non corrispondenti

Usare la Creazione guidata Query ricerca dati non corrispondenti per confrontare due tabelle

Creare e modificare una query di ricerca di dati non corrispondenti per eseguire il confronto in base a più campi

Creare una query personalizzata per trovare record non corrispondenti

Quando è utile cercare i record non corrispondenti

Di seguito vengono descritti due casi comuni in cui può essere utile confrontare due tabelle per trovare record non corrispondenti. In base alle circostanze, la ricerca di record non corrispondenti può essere semplicemente il primo di vari passaggi da eseguire, tuttavia questo articolo illustra solo come trovare record non corrispondenti.

  • Si usa una tabella per archiviare i dati su un elemento, ad esempio un prodotto, e un'altra tabella per archiviare azioni correlate a tale elemento, ad esempio ordini.    

    Nel modello di database Northwind, ad esempio, i dati sui prodotti sono archiviati nella tabella Prodotti, mentre i dati sui tipi di prodotti inclusi in ogni ordine sono archiviati nella tabella Dettagli sugli ordini. Poiché per impostazione predefinita non sono presenti dati relativi agli ordini nella tabella Prodotti, non è possibile determinare quali prodotti non sono mai stati venduti osservando solo la tabella Prodotti. Inoltre, queste informazioni non possono essere determinate osservando solo la tabella Dettagli sugli ordini, poiché questa tabella include solo i dati relativi ai prodotti venduti. Per determinare quali prodotti non sono mai stati venduti è quindi necessario confrontare le due tabelle.

    Se si vuole esaminare un elenco di elementi della prima tabella per cui non sono presenti azioni corrispondenti nella seconda, si può usare una query di ricerca di dati non corrispondenti.

  • Si vogliono consolidarle in una sola tabella due tabelle con informazioni sovrapposte, ridondanti o in conflitto.    

    Si supponga ad esempio di avere una tabella denominata Clienti e un'altra denominata Clientela. Le tabelle sono quasi identiche, ma in una o in entrambe le tabelle sono presenti alcuni record mancanti nell'altra. Per consolidare le tabelle, è necessario determinare innanzitutto quali record sono univoci in una tabella o nell'altra.

    In una circostanza analoga a quella illustrata, possono essere utili le indicazioni contenute in questo articolo, ma sarà probabilmente necessario eseguire altre operazioni. È possibile eseguire la Creazione guidata Query ricerca dati non corrispondenti per identificare i record non corrispondenti, ma se si vuole recuperare il set di record combinati, sarà necessario usare i risultati per creare una query di unione. Se si ha familiarità con la creazione di istruzioni SQL (Structured Query Language), probabilmente si preferirà scrivere manualmente la query di unione ignorando la Creazione guidata Query ricerca dati non corrispondenti.

    Il problema delle informazioni sovrapposte, ridondanti o in conflitto spesso può essere affrontato con la ricerca di dati duplicati in due o più tabelle.

Per altre informazioni sulle query di unione o su come trovare, nascondere o eliminare dati duplicati, fare clic sui collegamenti nella sezione Vedere anche.

Nota : Negli esempi contenuti in questo articolo viene utilizzato un database creato in base al modello di database Northwind.

Procedura per impostare Northwind

  1. Nella scheda File fare clic su Nuovo. Se si usa Access 2007, fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Nuovo.

  2. A seconda della versione di Access in uso, si può cercare Northwind nella casella di ricerca o nel riquadro sinistro, in Categorie di modelli, Modelli locali.

  3. In Modelli locali fare clic sull'esempio Northwind 2007 e quindi fare clic su Crea.

  4. Seguire le istruzioni visualizzate nella pagina Northwind Traders della scheda Schermata iniziale per aprire il database, quindi chiudere la Finestra di dialogo di accesso.

Inizio pagina

Utilizzare la Creazione guidata Query ricerca dati non corrispondenti per confrontare due tabelle

  1. Nel gruppo Query della scheda Crea fare clic su Creazione guidata Query. Se si usa Access 2007, nel gruppo Altro della scheda Crea fare clic su Creazione guidata Query.

    Nel gruppo Query della barra multifunzione di Access vengono visualizzate due opzioni: Creazione guidata Query e Struttura query
  2. Nella finestra di dialogo Nuova query fare doppio clic su Creazione guidata Query ricerca dati non corrispondenti.

  3. Nella prima pagina della procedura guidata selezionare la tabella contenente record non corrispondenti e quindi fare clic su Avanti. Ad esempio, se si desidera visualizzare un elenco di prodotti di Northwind che non sono mai stati venduti, selezionare la tabella Prodotti.

    Selezionare una tabella o una query nella finestra di dialogo Creazione guidata Query ricerca dati non corrispondenti
  4. Nella seconda pagina selezionare la tabella correlata e quindi fare clic su Avanti. Per seguire l'esempio, selezionare la tabella Dettagli sugli ordini.

    Selezionare una tabella o una query contenente i record correlati nella finestra di dialogo Creazione guidata Query ricerca dati non corrispondenti
  5. Nella terza pagina selezionare i campi correlati alle tabelle, scegliere < = > e quindi fare clic su Avanti. È possibile scegliere un solo campo da ogni tabella. Per seguire l'esempio, selezionare ID dalla tabella Prodotti e ID prodotto dalla tabella Dettagli sugli ordini. Verificare di avere selezionato i campi corretti esaminando il testo nella casella Campi corrispondenti.

    Selezionare i campi corrispondenti delle tabelle nella finestra di dialogo Creazione guidata Query ricerca dati non corrispondenti

    I campi ID e ID prodotto potrebbero essere già selezionati a causa di relazioni esistenti integrate nel modello.

  6. Nella quarta pagina fare doppio clic sui campi che si desidera visualizzare dalla prima tabella e quindi fare clic su Avanti. Per seguire l'esempio, selezionare i campi ID e Nome prodotto.

    Selezionare i campi che si vogliono vedere nell'output della query nella finestra di dialogo Creazione guidata Query ricerca dati non corrispondenti
  7. Nella quinta pagina è possibile scegliere di visualizzare i risultati o di modificare la struttura della query. In questo esempio fare clic su Visualizza i risultati. Accettare il nome suggerito per la query e quindi fare clic su Fine.

    Immettere un nome per la query nella finestra di dialogo Creazione guidata Query ricerca dati non corrispondenti

    È possibile modificare la struttura della query per aggiungere altri criteri, per modificare l'ordinamento o per aggiungere o rimuovere campi. Per informazioni sulla modifica di una query di ricerca di dati non corrispondenti, leggere la sezione seguente. Per informazioni generali sulla creazione o sulla modifica di query, seguire i collegamenti nella sezione Vedere anche.

Inizio pagina

Creare e modificare una query di ricerca di dati non corrispondenti per eseguire il confronto in base a più campi

  1. Nel gruppo Query della scheda Crea fare clic su Creazione guidata Query. Se si usa Access 2007, nel gruppo Altro della scheda Crea fare clic su Creazione guidata Query.

  2. Nella finestra di dialogo Nuova query fare doppio clic su Creazione guidata Query ricerca dati non corrispondenti.

  3. Nella prima pagina della procedura guidata selezionare la tabella contenente record non corrispondenti e quindi fare clic su Avanti. Ad esempio, se si desidera visualizzare un elenco di prodotti di Northwind che non sono mai stati venduti, selezionare la tabella Prodotti.

  4. Nella seconda pagina selezionare la tabella correlata e quindi fare clic su Avanti. Per seguire l'esempio, selezionare la tabella Dettagli sugli ordini.

  5. Nella terza pagina selezionare i campi correlati alle tabelle, scegliere < = > e quindi fare clic su Avanti. È possibile scegliere un solo campo da ogni tabella. Per seguire l'esempio, selezionare ID dalla tabella Prodotti e ID prodotto dalla tabella Dettagli sugli ordini. Verificare di avere selezionato i campi corretti esaminando il testo nella casella Campi corrispondenti. Si potranno creare join tra i campi rimanenti dopo aver completato la procedura guidata.

    I campi ID e ID prodotto potrebbero essere già selezionati a causa di relazioni esistenti integrate nel modello.

  6. Nella quarta pagina fare doppio clic sui campi che si desidera visualizzare dalla prima tabella e quindi fare clic su Avanti. Per seguire l'esempio, selezionare i campi ID e Nome prodotto.

  7. Nella quinta pagina fare clic su Modifica la struttura e quindi fare clic su Fine.

    La query si apre in visualizzazione Struttura.

  8. Nella griglia di struttura della query le due tabelle risultano collegate da join tramite i campi specificati nella terza pagina della Creazione guidata, in questo esempio ID e ID prodotto. Creare un join per ogni coppia di campi correlati rimanente trascinandoli dalla prima tabella, ovvero la tabella con i record non corrispondenti, nella seconda tabella. Per questo esempio trascinare il campo Prezzo di listino dalla tabella Prodotti nel campo Prezzo unitario dalla tabella Dettagli sugli ordini.

  9. Fare doppio clic su un join, ovvero la linea che collega i due campi, per visualizzare la finestra di dialogo Proprietà join. Per ogni join scegliere l'opzione che include tutti i record della prima tabella e quindi fare clic su OK.

    Nella griglia di struttura della query si noterà che a un'estremità di ogni join è presente una freccia.

    Il tipo di join è indicato dallo stile della linea.

    1. Se si crea il join tra i campi Prezzo di listino e Prezzo unitario, il join limita l'output di entrambe le tabelle. Nei risultati della query vengono inclusi solo i record con dati corrispondenti nei campi di entrambe le tabelle.

    2. Dopo avere modificato le proprietà del join, verrà limitata solo la tabella a cui punta la freccia, mentre tutti i record della tabella da cui ha origine la freccia saranno inclusi nei risultati della query.

    Nota : Verificare che tutte le frecce sulle linee di join siano rivolte nella stessa direzione.

  10. Per la tabella con i record correlati, in questo esempio la tabella Dettagli sugli ordini, fare doppio clic su ogni campo con un join alla prima tabella, ad eccezione del campo che è stato scelto nella terza pagina della procedura guidata, in questo caso il campo ID prodotto. Per ognuno di questi campi deselezionare la casella di controllo sulla riga Mostra e digitare Is Null sulla riga Criteri.

  11. In alternativa aggiungere criteri agli altri campi della query o creare campi calcolati basati sui valori della prima tabella.

  12. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

    La query restituirà i nomi dei prodotti che non appartengono ad alcun ordine esistente.

Inizio pagina

Creare una query personalizzata per trovare record non corrispondenti

  1. Nel gruppo Query della scheda Crea fare clic su Struttura query. Se si usa Access 2007, nel gruppo Altro della scheda Crea fare clic su Struttura query.

  2. Nella finestra di dialogo Mostra tabella fare doppio clic sulla tabella con i record non corrispondenti, quindi fare doppio clic sulla tabella con i record correlati.

  3. Chiudere la finestra di dialogo Mostra tabella.

  4. Nella griglia di struttura della query le due tabelle dovrebbero essere collegate tramite i campi correlati mediante linee denominate join. Se i join non sono presenti, crearli trascinando ogni campo correlato dalla prima tabella, contenente i record non corrispondenti, alla seconda tabella contenente i record correlati.

  5. Fare doppio clic su un join per aprire la finestra di dialogo Proprietà join. Scegliere l'opzione 2 per ogni join e quindi fare clic su OK.

    Nella griglia di struttura della query si noterà che i join sono stati modificati e che a un'estremità di ognuno è presente una freccia.

    Nota : Assicurarsi che le frecce di tutti i join siano rivolte nella stessa direzione. La query non verrà eseguita se i join puntano in direzioni diverse e potrebbe non essere eseguita se per ogni join non è presente una freccia. I join devono avere origine dalla tabella con i record non corrispondenti.

  6. Nella tabella con i record non corrispondenti fare doppio clic sui campi che dovranno essere restituiti dalla query.

    Facoltativamente, immettere criteri per uno qualsiasi di questi campi o creare campi calcolati.

  7. Nella tabella con i record correlati fare doppio clic su ogni campo collegato tramite join alla prima tabella. Per ognuno di questi campi deselezionare la casella sulla riga Mostra e digitare Is Null nella riga Criteri.

  8. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Inizio pagina

Vedere anche

Creare una query di selezione semplice

Trovare record duplicati con una query

Usare una query di unione per combinare più query in un singolo risultato

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×