Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Query dispettosa

  1. #1
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358

    Query dispettosa

    Buona domenica a tutti.

    Come da titolo vi posto il codice in esame :

    codice:
    for i = 1 to 12
    
    di = "01/" & i & "/" & anno
    if i = 2 then
    df = "28/" & i & "/" & anno
    else if i = 4 or i = 6 or i = 9 or i = 11 then
    df = "30/" & i & "/" & anno
    else
    df = "31/" & i & "/" & anno
    end if
    end if
    
    sql ="SELECT Count(Contatto) AS totale FROM utenti WHERE DataContatto between #"& di &"# and #"& df &"#"
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, Connessione, 3, 3
    	
    response.write rs("totale")
    rs.Close
    set rs = Nothing
    next
    Allora, il codice inizialmente e per ogni ciclo, compone le date per la successiva query, apre il recordset e mi prelevo il valore. ( ho omesso quella parte di codice).

    Il tutto funziona bene solo se per ogni ciclo trova almeno un record. Se per esempio per il primo mese mi trova 1 valore e per il secondo 0, il valore di rs("totale") me lo da come nel mese precedente.

    E' come se, ad ogni ciclo, il valore venga memorizzato...
    Mi scuso se non mi sono spiegato bene.

    Grazie a chi avesse un suggerimento.

  2. #2
    come primo passo, evita di costruire la data (nel tuo caso è uno spreco, e vedo che non gestisci i bisestili).

    invece della between usa

    ... WHERE Month(DataContatto)=i AND Year(Contatto)=anno

    per il ciclo usa la variabile 'mese' invece di 'i', anche la qry risulterà più leggibile

  3. #3
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Il programma è in fase di sviluppo. La parte dei bisestili era prevista.

    Ok provo come dici tu. Ti farò sapere. Grazie per ora

  4. #4
    Utente di HTML.it L'avatar di jspippo
    Registrato dal
    Jul 2005
    Messaggi
    358
    Grazie funziona.

    Ma come mai con between dava quel problema?

  5. #5
    probabilmente per una errata formazione delle date

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.