Filtrare una query con una tabella

di Gianfranco Budano

Pubblicato 25 Giugno 2008
Aggiornato 12 Febbraio 2018 20:43

Vi sono casi in cui la quantità di informazioni da utilizzare come criterio di filtro risulta elevata.

Ad esempio: disponiamo di una tabella in cui sono presenti tutti gli impiegati della nostra azienda; in un’altra invece sono presenti tutti gli impiegati e le informazioni relative alla loro anagrafica e alla loro residenza; vogliamo conoscere l’anagrafica e la residenza dei soli impiegati.

Oppure possiamo citare il caso di una libreria che registra quotidianamente la lista dei libri attesi dai suoi clienti, e vuole verificare quotidianamente quali di questi sono giunti in magazzino e avvisare gli utenti dell’arrivo dei volumi.

È chiaro che non possiamo ricopiare uno ad uno i nomi di tutti gli impiegati per incollarli nella riga “Criteri” di una query e filtrare dalla gran massa le anagrafiche dei soli impiegati; vi sono aziende che gestiscono migliaia di dipendenti.

È altresì chiaro come non sarà possibile gestire manualmente i criteri di filtro dell’esempio della libreria.

La soluzione è tuttavia semplice: occorre registrare la lista dei criteri del filtro all’interno di una tabella, la potremmo chiamare “TbFiltro”; questa tabella dovrà contenere almeno un campo che identifichi in maniera univoca la lista dei filtri da applicare, chiameremo questo campo “IdeFiltro”; questo campo conterrà la matricola dei dipendenti impiegati o il codice ISBN dei libri prenotati.

La seconda tabella ovviamente dovrà contenere almeno uno dei due identificativi associati al resto delle informazioni. Chiameremo la seconda tabella “TbPrincipale”.

Non ci resta che creare una nuova query di selezione e aggiungere le due tabelle, mettere in relazione “IdeFiltro” e fare in modo che il “join” prenda tutti i record contenuti in TbFiltro e solo quelli corrispondenti in TbPrincipale.

Per finire aggiungere i campi desiderati e cliccare il pulsante “Visualizzazione”.