Query, mantenere le non corrispondenze

di
Anonimizzato12532
il
14 risposte

Query, mantenere le non corrispondenze

Salve,
ho eseguito una query semplice con la creazione guidata, ma purtroppo elimina i record che non hanno la corrispondenza.
Mi spiego meglio: devo costruire una tabella che per ogni comune mi dia l'asl di appartenza, ma se il comune è straniero non mi restiuisce il record.
Attendo risposta, sono disperata
Grazie

14 Risposte

  • Re: Query, mantenere le non corrispondenze

    La query come e' fatta?

    che tabelle hai?
  • Re: Query, mantenere le non corrispondenze

    Ho 2 tabelle,
    una contiene i seguenti record:
    comune di nascita, comune di residenza, data di nascita, e altri record che ho inserito tutti;
    l'altra tabella contiene:
    codice asl, comune, e sono i campi che voglio poi aggiungere alla tabella finale, perchè voglio sapere in sostanze a quale asl appartengono i comuni che ho nella tabella originale.
    ho eseguito una prima query semplice, in creazione guidata, mettendo la relazione il campo "comune residenza" della 1 tabella, con "comune" della seconda,
    poi ho esguito una seconda query, utilizzando come prima tabella il risultato della prima query e mettendo in relazione il campo "comune" questa volta con comune nascita.
    Però il risultato è che mi esclude tutti i comuni esteri che non trovano corrispondenza con i comuni italiani.
    sono stata chiara?
    grazie
  • Re: Query, mantenere le non corrispondenze

    ladygaga ha scritto:


    poi ho esguito una seconda query, utilizzando come prima tabella il risultato della prima query e mettendo in relazione il campo "comune" questa volta con comune nascita.
    Però il risultato è che mi esclude tutti i comuni esteri che non trovano corrispondenza con i comuni italiani.
    sono stata chiara?
    grazie
    sei stata chiara

    se come dici hai messo in relazione la query con la tabella e il comune estero non trova corrispondenza e' giusto che venga escluso.

    Se da una parte ce e dall'altra no ovviamente i campi non matchano.

    Quindi cosa non ti torna?

    Sicuramente tu avrai fatto una Join naturale INNER JOIN.

    Se vuoi comunque mantenere tutti i campi di una tabella, a prescindere se questi joinino devi fare una LEFT (o RIGHT) JOIN a seconda della posizione della tabella che vuoi rendere "Master"
  • Re: Query, mantenere le non corrispondenze

    Grazie per la dettagliata risposta,
    ma sono passati...oltre 10 anni da quanto ho studiato SQL, e non ricordo certo come fare i JOIN purtroppo.
    non c'è una scorciatoia semplice da creazione guidata?
    A me serve che vengano mantenuti anche i campi che non trovano corrispondenza...

    grazie
  • Re: Query, mantenere le non corrispondenze

    Credo che tu abbia un po di confusione

    quando dici che vuoi "mantenere" anche gli altri record.

    i record nelle 2 tabelle si mantengono.

    La tua query se ho capito bene , serve a dirti per ogni comune l'asl di appartenenza.

    Se i comuni esteri non hanno asl e' giusto che non ti vengano visualizzati... cosa dovrebbe visualizzarti ?
  • Re: Query, mantenere le non corrispondenze

    Si, so che è giusto che non mi visualizzi i comuni esteri, ma a me serve che ci siano anche loro.
    Dici che non si può fare?
  • Re: Query, mantenere le non corrispondenze

    Ma dal quel che hai scritto nel precedente msg
    "Se vuoi comunque mantenere tutti i campi di una tabella, a prescindere se questi joinino devi fare una LEFT (o RIGHT) JOIN a seconda della posizione della tabella che vuoi rendere "Master""
    sembra possibile fare quello che a me serve, ma vorrei farlo in creazione guidata, altrimenti, mi puoi indicare più nel dettaglio come fare con SQL?
    grazie
  • Re: Query, mantenere le non corrispondenze

    Lasciando perdere la creazione guidata.

    Apri la tua query in Visualizzazione Struttura.

    Se hai fatto correttamente il join (spero di si) dovresti vedere le 2 entita collegate da una freccia.

    Fai doppio click su tale freccia e ti si aprira' una finestra.

    In tale finestra vi sono 3 opzioni, tu seleziona l'opzione in cui ti dice di visualizzare tutti i record della tabella di cui vuoi visualizzare tutto e solo i record che joinano dell'altra.

    In questo modo in Access crei un LEFT o RIGHT join

    fammi sapere su funge
  • Re: Query, mantenere le non corrispondenze

    Per chi non comprende (come me) SQL (Inner, Left o Right), devi fare così.
    1. Riapri la visualizzazione struttura query
    2. Clicca sulla linea di join con il mouse destro e scegli "Proprietà join"
    3. Scegli il join 2: Includi tutti i record di TabellaMadre e solo i record di TabellaFiglia in cui i campi collegati sono uguali
    4. Salva la query e riguardala, dovrebbe dare i risultati che aspettavi
  • Re: Query, mantenere le non corrispondenze

    OsvaldoLaviosa ha scritto:


    Per chi non comprende (come me) SQL (Inner, Left o Right), devi fare così.
    1. Riapri la visualizzazione struttura query
    2. Clicca sulla linea di join con il mouse destro e scegli "Proprietà join"
    3. Scegli il join 2: Includi tutti i record di TabellaMadre e solo i record di TabellaFiglia in cui i campi collegati sono uguali
    4. Salva la query e riguardala, dovrebbe dare i risultati che aspettavi
    E' esattamente quello scritto nella risposta sopra

    Se posso permettermi di fare un appunto, non capisco come ci si possa approcciare alla gestione di un DB sia pure esso progettato con MS Access che semplifica la vita senza conoscere le nozioni basilari della progettazione di un DB ne tanto meno le basi dell'sql...
  • Re: Query, mantenere le non corrispondenze

    Bomberdini ha scritto:


    Se posso permettermi di fare un appunto, non capisco come ci si possa approcciare alla gestione di un DB sia pure esso progettato con MS Access che semplifica la vita senza conoscere le nozioni basilari della progettazione di un DB ne tanto meno le basi dell'sql...
    Io non conosco SQL e nemmeno VBA. Ho buone basi. Questo mi consente di creare dignitosi e funzionali database, sfruttando al massimo le funzionalità di interfaccia facilitanti per l'utente.
    Scusa se ho ripetuto il concetto della tua ultima risposta, l'ho fatto semplicemente con termini più terra terra.
  • Re: Query, mantenere le non corrispondenze

    OsvaldoLaviosa ha scritto:


    Bomberdini ha scritto:


    Se posso permettermi di fare un appunto, non capisco come ci si possa approcciare alla gestione di un DB sia pure esso progettato con MS Access che semplifica la vita senza conoscere le nozioni basilari della progettazione di un DB ne tanto meno le basi dell'sql...
    Io non conosco SQL e nemmeno VBA. Ho buone basi. Questo mi consente di creare dignitosi e funzionali database, sfruttando al massimo le funzionalità di interfaccia facilitanti per l'utente.
    Scusa se ho ripetuto il concetto della tua ultima risposta, l'ho fatto semplicemente con termini più terra terra.
    scusa Osvaldo il mio era un appunto piu' rivolto a chi ha aperto il topic...

    Ma nel tuo caso quando dici : ho buone basi. Cosa intendi?
    La base per me dovrebbe essere Progettazione quindi individuare entita' e relazioni + sql

    ovviamente e' per parlare. Spero nessuno si offenda... A volte leggendo quello che si scrive sembra tutto con aria di critica... a voce con un sorriso avrebbe tutto un senso meno aspro
  • Re: Query, mantenere le non corrispondenze

    Ho risolto, grazie mille!!!
    e per quel commento mi sarei magari arrabbiata , ma non lo faccio, perchè mi occupo di tutt'altro e il tuo/vostro aiuto mi è stato prezioso.
    grazie
  • Re: Query, mantenere le non corrispondenze

    ladygaga ha scritto:


    Ho risolto, grazie mille!!!
    e per quel commento mi sarei magari arrabbiata , ma non lo faccio, perchè mi occupo di tutt'altro e il tuo/vostro aiuto mi è stato prezioso.
    grazie
    Non ti arrabbiare ciao e buon lavoro
Devi accedere o registrarti per scrivere nel forum
14 risposte