Access: Query Union

di Gianfranco Budano

Pubblicato 29 Gennaio 2008
Aggiornato 12 Febbraio 2018 20:44

La Query Union è uno specifico tipo di query che risolve un problema abbastanza spinoso in maniera relativamente semplice.

Vediamo subito in quali casi ci può essere utile: sicuramente ci sarà utile qualora volessimo creare un quadro sinottico di tabelle relative a diversi anni, come succede quando si devono comparare i bilanci di un’azienda allineandoli per conto economico o per altri fattori. Può succedere, infatti, che spese effettuate su alcuni conti siano presenti in un anno e non nel successivo; oppure, al contrario, che ricavi registrati nell’anno corrente non siano presenti nel precedente.

In questo caso mettere in relazione le due tabelle collegando il campo Codice Conto delle due, non risolve il problema poiché la query che ne risulterebbe evidenzierebbe solo i campi effettivamente presenti in entrambe, oppure quelli presenti nella prima ma non nella seconda e viceversa.

E se avessi bisogno di evidenziare tutti i campi esistenti nella prima e nella seconda tabella? La soluzione è quella di creare una Query Union che contenga, senza duplicazioni, l’indice di tutti i conti economici esistenti nelle due tabelle.

Per fare ciò procediamo in questo modo:

  1. Dal menu Crea cliccare sul pulsante Struttura query;
  2. Chiudere il wizard che si apre automaticamente senza aggiungere alcuna tabella;
  3. Premere il pulsante SQL in alto a sinistra;
  4. Scrivere il seguente codice:
    SELECT Tabella1.CodiceConto from Tabella1
    union
    select Tabella2.CodiceConto from Tabella2
  5. Naturalmente sostituire a Tabella1, Tabella2 e CodiceConto , i nomi utilizzati nel vostro database;
  6. Salvare la query col nome QueryUnion;
  7. creare una nuova query;
  8. Aggiungere le Tabelle1 e 2 e la QueryUnion;
  9. Posizionare in mezzo la QueryUnion e ai lati le altre due tabelle;
  10. Creare un join verso destra per fra la QueryUnion e la tabella di destra e un join verso sinistra fra la QueryUnion e la tabella di sinistra; naturalmente il join collegherà i campi dei codici di conto dei vostri bilanci;
  11. A questo punto non vi resta che selezionare i campi che vi interessa visualizzare aggiungendoli alla vostra query.