Valore non ripetuto in un campo query

di il
5 risposte

Valore non ripetuto in un campo query

Buonasera,
ho creato una query e volevo fare in modo che comparisse un solo record per ogni "nome_ditta", cioè quel record con data_evento più recente. Non ci sono riuscito, infatti mi compaiono due record col valore "bb" nel campo nome_ditta.
Qualcuno sa aiutarmi? Va bene risolvere il tutto anche creando una seconda query. Ditemi voi. Ovviamente lascio il db in allegato.

Grazie mille

db:

5 Risposte

  • Re: Valore non ripetuto in un campo query

    1. In visualizzazione struttura query, clicca in alto sul tasto Totali
    2. In corrispondenza del campo [data_evento], scegli Formula: Max
  • Re: Valore non ripetuto in un campo query

    Posta il predicato SQL non il tuo lavoro.
  • Re: Valore non ripetuto in un campo query

    Ringrazio entrambi per avermi risposto. Ho provato con la formula max ma non cambia niente nel mio caso.
    lascio anche il codice sql della query.
    SELECT tb_ditte.nome_ditta, tb_eventi.data_evento, tb_oggetti.nome_oggetto, IIf([tb_oggetti]![cadenza_data]="Giorni",DateAdd("d",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Mesi",DateAdd("m",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Settimane",DateAdd("ss",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Anni",DateAdd("yyyy",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),"")))) AS Scadenza, "ogni " & [tb_oggetti]![numero_data] & " " & [tb_oggetti]![cadenza_data] AS Cadenza
    FROM qy_pre_scadenza, (tb_ditte INNER JOIN tb_oggetti ON tb_ditte.ID = tb_oggetti.ID_tb_ditte) INNER JOIN tb_eventi ON tb_oggetti.ID = tb_eventi.ID_tb_oggetti
    GROUP BY tb_ditte.nome_ditta, tb_eventi.data_evento, tb_oggetti.nome_oggetto, IIf([tb_oggetti]![cadenza_data]="Giorni",DateAdd("d",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Mesi",DateAdd("m",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Settimane",DateAdd("ss",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Anni",DateAdd("yyyy",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),"")))), "ogni " & [tb_oggetti]![numero_data] & " " & [tb_oggetti]![cadenza_data], tb_ditte.stato_ditta, tb_oggetti.stato_oggetto
    HAVING (((tb_ditte.stato_ditta)=True) AND ((tb_oggetti.stato_oggetto)=True))
    ORDER BY IIf([tb_oggetti]![cadenza_data]="Giorni",DateAdd("d",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Mesi",DateAdd("m",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Settimane",DateAdd("ss",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Anni",DateAdd("yyyy",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),""))));
    Grazie a entrambi e scusate per la mia incompetenza. Ho copiato tutto il codice sql per maggiore completezza.

    jibi
  • Re: Valore non ripetuto in un campo query

    Crei prima qy_pre_scadenza che seleziona l'ultimo evento relativo alla ditta in base alla data evento:
    
    SELECT tb_ditte.nome_ditta, Max(tb_eventi.data_evento) AS MaxDidata_evento
    FROM (tb_ditte INNER JOIN tb_oggetti ON tb_ditte.ID = tb_oggetti.ID_tb_ditte) INNER JOIN tb_eventi ON tb_oggetti.ID = tb_eventi.ID_tb_oggetti
    GROUP BY tb_ditte.nome_ditta;
    
    poi la qy_scadenzache che ti fa vedere tutti i dati che vuoi
    
    SELECT tb_ditte.nome_ditta, tb_eventi.data_evento, tb_oggetti.nome_oggetto, IIf([tb_oggetti]![cadenza_data]="Giorni",DateAdd("d",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Mesi",DateAdd("m",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Settimane",DateAdd("ss",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Anni",DateAdd("yyyy",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),"")))) AS Scadenza, "ogni " & [tb_oggetti]![numero_data] & " " & [tb_oggetti]![cadenza_data] AS Cadenza
    FROM (tb_eventi INNER JOIN (tb_ditte INNER JOIN qy_pre_scadenza ON tb_ditte.nome_ditta = qy_pre_scadenza.nome_ditta) ON tb_eventi.data_evento = qy_pre_scadenza.MaxDidata_evento) INNER JOIN tb_oggetti ON (tb_oggetti.ID = tb_eventi.ID_tb_oggetti) AND (tb_ditte.ID = tb_oggetti.ID_tb_ditte)
    WHERE (((tb_ditte.stato_ditta)=True) AND ((tb_oggetti.stato_oggetto)=True))
    ORDER BY IIf([tb_oggetti]![cadenza_data]="Giorni",DateAdd("d",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Mesi",DateAdd("m",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Settimane",DateAdd("ss",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),IIf([tb_oggetti]![cadenza_data]="Anni",DateAdd("yyyy",[tb_oggetti]![numero_data],[tb_eventi]![data_evento]),""))));
    
  • Re: Valore non ripetuto in un campo query

    Grazie mille !!! Funziona !!!!!

    jibi
Devi accedere o registrarti per scrivere nel forum
5 risposte