Gestire i dati con le query

Eseguire query su origini dati non correlate

Il browser in uso non supporta le funzionalità video. Installare Microsoft Silverlight, Adobe Flash Player o Internet Explorer 9.

A volte, devi creare una query per ottenere informazioni da origini dati che non hanno una relazione diretta (uno-a-uno o uno-a-molti).

Usare tabelle intermedie per connettere origini dati nelle query

Quando esegui una query, Access usa le relazioni che hai creato tra le tabelle e deduce e crea le connessioni tra le altre origini dati. Se la relazione che ti serve per una query non esiste, connetti le tabelle come parte della query.

Supponi di voler determinare quanti ordini hai ricevuto per prodotti di diversi fornitori. La tabella Fornitori non è connessa alla tabella Dettagli ordini di acquisto, che contiene gli ID prodotto e informazioni sulle quantità. Tuttavia, la tabella Ordini di acquisto è connessa alla tabella Dettagli ordini di acquisto.

Più origini dati tabella, con e senza relazioni predefinite.

Suggerimento : Se questa relazione può servirti anche al di fuori della query che stai creando, è preferibile creare una relazione intermedia da usare anche successivamente. Per altre informazioni, vedi Creare relazioni molti-a-molti.

Se non vuoi creare la tabella intermedia nel database, usa la tabella Ordini di acquisto come tabella intermedia nella query. Aggiungi la tabella Fornitori a sinistra della tabella Ordini di acquisto e quindi crea una connessione.

Uso di una tabella per connettere indirettamente altre due tabelle

La tabella Ordini di acquisto è connessa a due tabelle diverse, Fornitori e Dettagli ordini di acquisto. Connetti le tabelle tramite campi (come il campo ID della tabella Fornitori e il campo ID fornitore della tabella Ordini di acquisto) che soddisfano i criteri seguenti:

  • I due campi hanno tipi di dati corrispondenti o compatibili. Ad esempio, non puoi connettere un campo di testo a un campo numerico.

  • I campi identificano record univoci corrispondenti in ogni tabella. Ad esempio, è sconsigliabile connettere due campi Cognome, perché i cognomi non sono sempre univoci.

  • I campi assicurano la restituzione dei record corretti. Ad esempio, se connetti ID fornitore a ID acquisto, potresti ottenere alcune corrispondenze se gli ID sono simili. Tuttavia, i risultati non avranno senso, perché l'ID fornitore e l'ID acquisto non hanno alcuna correlazione. Una scelta migliore consiste nel connettere il campo ID della tabella Fornitori al campo ID fornitore della tabella Ordini di acquisto. In questo caso, i record restituiti avranno senso, perché entrambi i campi identificano il fornitore.

Passaggi

Se il database contiene una tabella intermedia o se prevedi solo di usarne una nella query, segui questi passaggi:

  1. Aggiungi la tabella intermedia alla query tra le due tabelle non connesse.

  2. Crea tutte le necessarie connessioni alla tabella intermedia.

    Le connessioni possono usare qualsiasi tipo appropriato di join, ma devono essere connesse tramite campi che soddisfano i criteri descritti prima in questo modulo.

    Creazione delle connessioni alla tabella intermedia
  3. Completa la query.

    Segui i normali passaggi per creare una query: aggiungi campi di output, aggiungi eventuali criteri ed esegui o salva la query. Per scoprire come, vedi Creare query di base.

    Nota : Non devi includere la tabella intermedia nei risultati. Questa tabella deve solo fare parte delle origini dati della query, in modo che Access possa connettere i dati.

Altre informazioni

Creare query di base

Creare query unendo più origini dati

Creare query con outer join

Formazione su Excel

Formazione su Outlook

A volte potresti dover eseguire query su tabelle o altre origini dati che non sono correlate e che non condividono un join. A questo scopo, puoi usare due metodi diversi.

Puoi usare una tabella intermedia, ovvero una tabella che condivide join con le origini dati che vuoi usare.

In alternativa, puoi aggiungere un join.

Iniziamo dalla tabella intermedia. In questo database di esempio i dipendenti devono immettere uno stato per ogni ordine, ma a volte se ne dimenticano.

La domanda a cui vuoi una risposta è: "Quali ordini non hanno uno stato e quali dipendenti hanno dimenticato di immetterlo?"

A quanto pare, nella query dobbiamo usare tre tabelle, ovvero Dipendenti, Ordini e Stato dettagli ordini, perché corrispondono ai dati citati nella nostra domanda "Quali ordini non hanno uno stato e quali dipendenti hanno dimenticato di immetterlo?"

Aggiungi le tabelle alla query e noterai che queste due tabelle non hanno join. Nessun problema. Possiamo aggiungere un join.

Creiamo quindi un join tra i campi ID, eseguiamo la query e come vedi non otteniamo alcun risultato.

A questo punto, faremo quello che avremmo dovuto fare all'inizio e osserveremo le relazioni tra le tabelle.

Noteremo una specie di catena di relazioni: Dipendenti-a-Ordini, Ordini-a-Dettagli ordine e Dettagli ordine-a-Stato dettagli ordini.

Le tabelle Ordini e Stato dettagli ordini non sono correlate, ma la tabella Dettagli ordine lo è a entrambe. Questo fa di Dettagli ordine la nostra tabella intermedia.

A sua volta, questo produce una regola: Purché la tabella intermedia faccia parte dell'origine dati, puoi eseguire query su queste tabelle non correlate e ottenere un risultato valido.

Non devi includere la tabella intermedia nei risultati, ma questa tabella deve semplicemente fare parte dell'origine dati della query.

Aggiungiamo quindi la tabella Dettagli ordine alla query, lasciamo inalterati i campi ed eseguiamo la query.

Filtriamo i valori vuoti ed ecco la risposta.

A questo punto, aggiungiamo un join a una query. A questo scopo, devi tenere presenti alcune regole.

Prima di tutto, i campi delle tabelle o delle query che vuoi unire in join devono avere tipi di dati corrispondenti o compatibili.

Ad esempio, i tipi di dati Numerico e Valuta sono compatibili, mentre Numerico e Testo non lo sono.

In secondo luogo, il join creato si applica solo alla query. In questo caso, infatti, non stai creando una relazione tra tabelle.

In terzo luogo, i risultati devono essere sensati. Se il join restituisce dati su ordini e auto aziendali, ad esempio, probabilmente dovrai ricominciare.

Supponiamo di dover determinare quali prodotti sono stati ordinati dai diversi clienti.

Aggiungiamo le tabelle Clienti, Ordini e Dettagli ordine a una nuova query. Aggiungiamo quindi il join. Trasciniamo ID cliente dalla tabella Clienti al campo corrispondente nella tabella Ordini.

Ecco la linea di join, con un'altra regola: Access posiziona il campo trascinato sul lato sinistro del nuovo join. Se non è questo che vuoi, seleziona la linea di join, premi CANC e ricomincia.

A questo punto, possiamo eseguire la query. Aggiungiamo Nome e Cognome dalla tabella Clienti, quindi ID prodotto, ID ordine, Quantità e Prezzo unitario dalla tabella Dettagli ordine.

Eseguiamo la query ed ecco i nostri dati.

Hai imparato due possibili tecniche da usare per eseguire query su origini dati non correlate, ovvero l'uso di una tabella intermedia o l'aggiunta di un join, per ottenere le risposte alle tue domande sui dati.

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.

×