Ricerca giorni specifici in un periodo

di il
3 risposte

Ricerca giorni specifici in un periodo

Sera a tutti

sto cercando di mettere su una funzione che mi possa dare come risultato l'elenco delle pratiche fatte in due giorni specifici della settimana (il sabato e la domenica)

per esempio: pratica x fatta oggi; pratica y fatta ieri

Vorrei che mi riportasse nel periodo di tempo dal "01/01" al "15/06" solo le pratiche fatte di sabato o di domenica: in questo caso x (anche se siamo a settembre)

al momento ho solo questo:
Function sat(ddate As Date, whichday As VbDayOfWeek)
    sat = Weekday(ddate, whichday)
End Function
e non saprei come andare avanti

Grazie a tutti in anticipo

3 Risposte

  • Re: Ricerca giorni specifici in un periodo

    Se hai le pratiche con il dato giornaliero di trattamento è sufficiente avere una query di selezione ove impostare un criterio che prenda l'intervallo temporale (DAL - AL) ed i cui giorni ricadano in sabato o domenica (ove la data, praticamente, con funzione Weekday è uguale a 1 o 7):
    https://support.microsoft.com/it-it/office/funzione-weekday-05d360d7-2c3f-4691-9448-c96ea0351940
  • Re: Ricerca giorni specifici in un periodo

    OVVIAMENTE la pratica DEVE avere un campo data.
    Quindi dovrai fare una query del tipo:
    
    SELECT pratica FROM tabellaPratiche
    WHERE pratica.data >= inizioPeriodo
      AND pratica.data <= finePeriodo
      AND (
              giornoSettimana(pratica.data) == "Sabato"
           OR giornoSettimana(pratica.data) == "Domenica"
       )
    
    dove "giornoSettimana(data)" e' una funzione che ti ritorna il giorno della settimana corrispondente ad una certa data

    Per il "oggi/ieri", la query e'simile

    
    SELECT pratica FROM tabellaPratiche
    WHERE pratica.data >= inizioPeriodo
      AND pratica.data <= finePeriodo
      AND (
              giornoSettimana(pratica.data) == oggi()
           OR giornoSettimana(pratica.data) == oggi()-1
       )
    
    dove "oggi()" e' una funzione che ritorna la data di "oggi"
  • Re: Ricerca giorni specifici in un periodo

    Come ti ha indicato [Migliorabile] il costrutto SQL deve individuare la settimana se questa abbraccia più periodi di ricerca... come nel tuoi caso.
    La adatterei così per JET:
    SELECT pratica FROM tabellaPratiche
    WHERE pratica.data >= inizioPeriodo
      AND pratica.data <= finePeriodo
      AND (
              WeekDay(pratica.data,2) = 6
           OR WeekDay(pratica.data,2) = 7
       )
    Fai attenzione anche a costruire correttamente la Sintassi di [inizioPeriodo] e [finePeriodo] che essndo date, necessitano di adeguata conversione se operi la Risoluzione Esplicita del valore.
Devi accedere o registrarti per scrivere nel forum
3 risposte