Query unione da risultato diverso dalla query singole

di il
3 risposte

Query unione da risultato diverso dalla query singole

Salve 

con i vostri suggerimenti trovati nel forum, ho aggiustato un db che avevo realizzato anni fa

per estrarre dei dati uso delle query il cui codice ho poi copiato in una query unione per facilitare l'estrazione dei dati, che faccio selezionando la data (es dicembre 2025 ed estraggo tutto il mese di dicembre) 

mi sono accorto che se eseguo le query singolarmente e faccio la somma a mano ottengo un risultato X, se eseguo la query unione il risultato è diverso, manca sempre 1 record

preciso che non ci sono filtri o ragguppamenti nella query unione...perciò dovrebbe filare tutto liscio

qualche suggerimento al riguardo ?? 

grazie

Valter

3 Risposte

  • Re: Query unione da risultato diverso dalla query singole

    08/01/2026 - valtere ha scritto:

    qualche suggerimento al riguardo ?? 

    Mostra la query...

    08/01/2026 - valtere ha scritto:

    per estrarre dei dati uso delle query il cui codice ho poi copiato in una query unione per facilitare l'estrazione dei dati, che faccio selezionando la data (es dicembre 2025 ed estraggo tutto il mese di dicembre) 

    Cosa estrapoli?

    Non puoi estrapolare e.sommare in un unico passaggio?

    Invece di unire (Union) non puoi filtrare?

  • Re: Query unione da risultato diverso dalla query singole

    Grazie per le risposte

    forse ho trovato l'inghippo, probabilmente c'è un record esattamente uguale sui dati visualizzati

    se nel risultato della query faccio mostrare anche un altro campo (campo "ora" che in realtà non mi serve) il risultato torna corretto

    per quanto riguarda estrapolare e sommare in unico passaggio, mi chiedi troppo...non sono così avanti hi hi

    la qry è questa:

    SELECT tabAA_Master_AviazComm.rilevamento_del, [tabArrivo-AviazComm-Volato-NAZ].ora, [tabArrivo-AviazComm-Volato-NAZ].sigla_volo, [tabArrivo-AviazComm-Volato-NAZ].[tipo-volo], [tabArrivo-AviazComm-Volato-NAZ].compagnia, [tabArrivo-AviazComm-Volato-NAZ].[ARR-DEP], [tabArrivo-AviazComm-Volato-NAZ].IATA, [tabArrivo-AviazComm-Volato-NAZ].aeroporto_provenienza, [tabArrivo-AviazComm-Volato-NAZ].passeggeri, [tabArrivo-AviazComm-Volato-NAZ].[tipo-tratta]
    FROM tabAA_Master_AviazComm INNER JOIN [tabArrivo-AviazComm-Volato-NAZ] ON tabAA_Master_AviazComm.ID = [tabArrivo-AviazComm-Volato-NAZ].tabAA_Master
    WHERE (((Format$([tabArrivo-AviazComm-Volato-NAZ].[data],'mmmm yyyy'))=[digitare mese e anno di riferimento es: settembre 2024]))
    ORDER BY tabAA_Master_AviazComm.rilevamento_del
    
    UNION 
    
    SELECT tabAA_Master_AviazComm.rilevamento_del, [tabPartenza-AviazComm-Volato-NAZ].ora, [tabPartenza-AviazComm-Volato-NAZ].sigla_volo, [tabPartenza-AviazComm-Volato-NAZ].[tipo-volo], [tabPartenza-AviazComm-Volato-NAZ].compagnia, [tabPartenza-AviazComm-Volato-NAZ].[ARR-DEP], [tabPartenza-AviazComm-Volato-NAZ].IATA, [tabPartenza-AviazComm-Volato-NAZ].aeroporto_destinazione, [tabPartenza-AviazComm-Volato-NAZ].passeggeri, [tabPartenza-AviazComm-Volato-NAZ].[tipo-tratta]
    FROM tabAA_Master_AviazComm INNER JOIN [tabPartenza-AviazComm-Volato-NAZ] ON tabAA_Master_AviazComm.ID = [tabPartenza-AviazComm-Volato-NAZ].tabAA_Master
    WHERE (((Format$([tabPartenza-AviazComm-Volato-NAZ].[data],'mmmm yyyy'))=[digitare mese e anno di riferimento es: settembre 2024]));
    
  • Re: Query unione da risultato diverso dalla query singole

    08/01/2026 - valtere ha scritto:

    forse ho trovato l'inghippo, probabilmente c'è un record esattamente uguale sui dati visualizzati

    se nel risultato della query faccio mostrare anche un altro campo (campo "ora" che in realtà non mi serve) il risultato torna corretto

    questo perchè UNION elimina i duplicati, aggiungendo l'ora il record che ha la stessa data ma ora diversa non è più considerato un duplicato. 

    se hai (per assurdo) un volo con la stessa ora verrebbe considerato un duplicato.

    nel dubbio usa UNION ALL che include i duplicati.

    per maggiore chiarezza puoi usare i parametri per la data nel formato mese da 1 a 12 piuttosto che gennaio, febbraio ecc... per evitare errori di digitazione o in alternativa prelevarli da una combo che elenca i mesi. per l'anno lascerei fare all'utente (dovresti avere una combo dall'anno 1900 al 5999)...

    rendila più leggibile non ti riportare sempre i nomi delle tabelle usa gli alias ( es. from tabella as nomeinchiaro)

Devi accedere o registrarti per scrivere nel forum
3 risposte