Restituzione 1 record con data meno recente (3 filtri)

di il
4 risposte

Restituzione 1 record con data meno recente (3 filtri)

Ciao a tutti IProgrammatori,
sono qui per chiedervi cortesemente un aiuto, ho già fatto delle prove purtroppo senza risultati.
Ho un database con circa 2milioni di records e 11 colonne
Ho creato una query "MyParameterQuery" con 3 criteri aggregati (allegato1)
1°criterio -> colonna "assemdatanum" vengono inserite 2 date come input e vengono elaborate con la funzione Between
2°criterio -> colonna "Future" viene inserito il nome come input
3°criterio -> colonna "Mth" viene inserito il nome come input

allegato1.jpg
allegato1.jpg


Il tutto funziona perfettamente!


Adesso dovrei, al posto del 1°criterio Beetween, inserirne uno nuovo che prenda la data più lontana o meno recente, lasciando inalterati il 2° e il 3° criterio.
Ho provato con la funzione Dmin (allegato2),

allegato2.jpg
allegato2.jpg

cliccando su esegui, si visualizza effettivamente 1 solo record, ma è vuoto!

il campo "assemdatanum" è un campo numerico, se dovesse servire avrei anche un campo data/ora denominato "assemdata"

Ho provato con la funzione Min e dice che è impossibile avere una funzione aggregazione nella clausola WHERE (FUTURE_DB_AGG.assemdatanum=Min([assemdatanum]) And FUTURE_DB_AGG.Future Like [enter future] & "*" And FUTURE_DB_AGG.Mth Like [enter mth] & "*")

Secondo voi è possibile eseguire la mia richiesta?
Grazie

4 Risposte

  • Re: Restituzione 1 record con data meno recente (3 filtri)

    Ordinare DECRESCENTE e prendere il 1° non ti piace...?
  • Re: Restituzione 1 record con data meno recente (3 filtri)

    Salve Alex, su Excel o Vba non avrei avuto problemi a fare l'ordinamento e prendere eventualmente il primo, ma in questo caso non sono pratico di Access, grazie comunque per l'indicazione, cerco di capire come fare, non dovrebbe essere difficile
  • Re: Restituzione 1 record con data meno recente (3 filtri)

    Modifichi predicato SQL
    
    SELECT TOP 1 Elenco campi
    FROM TUA TABELLA 
    WHERE Elenco condizioni nel tuo caso 2
    ORDER BY Campodata Desc
    
  • Re: Restituzione 1 record con data meno recente (3 filtri)

    Grazie Alex, hai risolto il problema con
    SELECT TOP 1 Elenco campi
    FROM TUA TABELLA
    WHERE Elenco condizioni nel tuo caso 2
    ORDER BY Campodata Desc (ho modificato in Asc)

    non ci sarei riuscito mi stavo incastrando in un altro vicolo cieco

    Nel frattempo stavo cercando di applicare quello che mi avevi indicato, ma nel campo criterio con DFIRST e MIN...ovviamente non funzionava!
    Avevo provato a creare una nuova query che fa riferimento alla query esistente indicata nel primo post con i 2 filtri
    ero andato in visualizzazione struttura e sotto la colonna assemdatanum, nel campo criteri, ho inserito:

    - DFirst nel campo Criteri in questo modo --> DFirst([assemdatanum];[MyParameterQuery]) -->mi chiedeva data inizio, data fine, nome Future, nome Mth, e poi mi chiedeva un valore per MyParameterQuery e non sapevo cosa mettere

    - Min nel campo Criteri in questo modo --> Min([assemdatanum]) --> diceva, impossibile avere una funzione di aggregazione nella clausola WHERE (MyParameterQuery.assemdatanum=Min8[assemdatanum]))

    Grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte