Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Distinguere Giorni di una settimana in una query

    ciao, ho un altro ennesimo problema con le date...
    passata una data_inizio e data_fine, compongo l'sql che mi estrae un conteggio giornaliero
    nella query attuale ho già impostato anche la condizione che l'orario della data (che è di tipo Data/Ora) sia compreso tra le 8:30 e le 12:30, tra le 13:30 e le 18:30
    poi con un ciclo vado a scrivere questi e altri dati all'interno di una tabella, sempre suddivisa in giorni

    problema: in realtà io dovrei escludere le domeniche (ma questo lo faccio semplicemente testando il campo nel ciclo, se è domenica non scrivo la riga), ma soprattutto mi cambia la condizione dell'orario a seconda del giorno. Se è sabato infatti devo estrarre solo record il cui orario è compreso tra le 8:30 e le 12:30
    è possibile all'interno della query verificare già questa cosa?

    codice:
    SELECT Mid(CStr(DateTimeCall),1,10) AS Data, Count(Mid(CStr(DateTimeCall),1,10)) As TotRec FROM Chiamate WHERE (DateTimeCall Between #7/7/2007# AND #7/19/2007#) AND (TimeValue(DateTimeCall) Between #08.30.00# And #12.30.00# OR TimeValue(DateTimeCall) Between #13.30.00# And #18.30.00#) AND GroupID <> "Telefoni" GROUP BY Mid(CStr(DateTimeCall),1,10)
    Ho anche escluso il count dalla query per poi farlo successivamente, mentre scrivo le righe della tabella nel ciclo, ma non so come fare eventualmente il conteggio verificando altre condizioni


  2. #2
    where weekday(date)<>0

    dovrebbe escludere le domeniche

  3. #3
    Originariamente inviato da optime
    where weekday(date)<>0

    dovrebbe escludere le domeniche
    le esclude con <>1 , grazie!
    allora mi sa che lavoro così, magari facendo una union tra due query, una che mi esclude i sabati e le domeniche, l'altra che mi prende solo i sabati e l'orario che voglio io!

  4. #4
    forse giocando bene con le where riesci con una sola. vedi tu.

  5. #5
    sì infatti, sia con la union che con la where sono riuscita a risolvere, grazie 1000 , non era nemmeno complicato

    codice:
    SELECT Mid(CStr(DateTimeCall),1,10) AS Data, Count(Mid(CStr(DateTimeCall),1,10)) As Chiamate FROM Chiamate WHERE (DateTimeCall Between #7/6/2007# AND #7/19/2007#) 
    AND (((weekday(DateTimeCall) <> 1 AND weekday(DateTimeCall) <> 7) AND (TimeValue(DateTimeCall) Between #08.30.00# And #12.30.00# OR TimeValue(DateTimeCall) Between #13.30.00# And #18.30.00#)) 
    OR (weekday(DateTimeCall) = 7) AND (TimeValue(DateTimeCall) Between #08.30.00# And #12.30.00#))
    AND GroupID <> "Telefoni" 
    GROUP BY Mid(CStr(DateTimeCall),1,10)

  6. #6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.