Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427

    determinare mesi in recordset

    ciao a tutti.
    Mi ritrovo a non capire perchè questa query non restituisce i corretti risultati. Premetto che il mio obiettivo è di trovare quali mesi dentro la tabella partenze hanno almeno una data inserita e un determinato id(codoff):

    <%
    for k=date() to dateadd("m",7,date()) step 31
    Set rs = Server.CreateObject("ADODB.recordset")
    strSQL="SELECT * FROM partenze where codoff=189 and data between #"&k&"# and #"& dateadd("m",1,k) &"# "
    rs.open strsql, conn
    if rs.eof then
    response.write "nullo"
    else
    response.write monthname(month(k))
    end if
    next
    %>
    i risultati di questa query sono:
    nullo
    nullo
    nullo
    nullo
    dicembre
    nullo
    nullo

    ma non è corretto perchè:

    la tabella partenze ha 15 record nel codoff 189
    e il campo data ha questi dati
    data
    24/11/2005
    23/11/2005
    22/11/2005
    27/11/2005
    24/11/2005
    24/10/2005
    20/10/2005
    24/10/2005
    20/10/2005
    24/09/2005
    20/09/2005
    24/11/2005
    20/11/2005
    24/11/2005
    20/11/2005

    stampando la query a video ho:
    SELECT * FROM partenze where codoff=189 and data between #05/08/2005# and #05/09/2005#
    SELECT * FROM partenze where codoff=189 and data between #05/09/2005# and #05/10/2005#
    SELECT * FROM partenze where codoff=189 and data between #06/10/2005# and #06/11/2005#
    SELECT * FROM partenze where codoff=189 and data between #06/11/2005# and #06/12/2005#
    SELECT * FROM partenze where codoff=189 and data between #07/12/2005# and #07/01/2006#
    SELECT * FROM partenze where codoff=189 and data between #07/01/2006# and #07/02/2006#
    SELECT * FROM partenze where codoff=189 and data between #07/02/2006# and #07/03/2006#

  2. #2
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    ma lo step 31 non va bene.....ci sono mesi con 30 e 28 giorni

    secondo me basta una sola query x avere i tuoi risultati e non un ciclo.

    tu devi sapere i mesi che hanno id pieno giusto?
    Fero
    Vuoi conoscere nuovi Amici?

  3. #3
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    SELECT distinct month(data) FROM partenze where codoff=189
    Fero
    Vuoi conoscere nuovi Amici?

  4. #4
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    strSQL="SELECT DISTINCT month(data) FROM partenze where codoff=189 "
    questa è la query che ho usato

    questi i risultati:

    agosto
    settembre
    ottobre
    novembre
    dicembre
    gennaio
    febbraio

    in effetti mi restituisce il mese ma non controlla se nel mese di agosto in effetti c'è una data...

  5. #5
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    ho provato anche senza ciclo:

    Set rs = Server.CreateObject("ADODB.recordset")
    strSQL="SELECT DISTINCT month(data) FROM partenze where codoff=189 "
    response.write "
    "
    rs.open strsql, conn
    if not rs.eof then
    do until rs.eof
    response.write ????
    rs.movenext
    loop
    end if

    ma... qualè il response.write???

  6. #6
    codice:
    SELECT month(data) as mesi,count(month(data)) as quantevolte FROM partenze WHERE codoff=189  GROUP BY month(data) HAVING count(month(data))>0
    questa query dovrebbe fare al caso tuo:

    seleziona il mese (e quante volte occorre il mese) che ha codoff=189 e occorre almeno una volta (se vuoi che ci siano almeno 2 date basta che al posto di >0 metti >1) e così via...

    dimmi se ti è stata utile
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    in teoria non dovrebbe prendere date vuote....

    ma prende le date inipendentemente dall'anno

    hai forse nel db qualche data con anno <> da 2005?
    Fero
    Vuoi conoscere nuovi Amici?

  8. #8
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    si può essere utile, ma per visualizzare i mesi che valore do al response.write??

    month(data) ??

  9. #9
    codice:
    response.write rs("mesi")&"->"&rs("quantevolte")
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  10. #10
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    Originariamente inviato da fero
    in teoria non dovrebbe prendere date vuote....

    ma prende le date inipendentemente dall'anno

    hai forse nel db qualche data con anno <> da 2005?
    no hai visto i dati sopra...

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.