Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ciclo e WHERE IN

  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    ciclo e WHERE IN

    ciao ho questo codice:

    codice:
    set rsSub = server.CreateObject("adodb.recordset")
    strSQLsub = "SELECT codiceagente FROM tabagente WHERE collegato = '"&arr_id(y)&"'"
    rsSub.open strSQLsub, objConn, 0, 3
    
    do while not rsSub.eof
    strSubagenti = rsSub.fields.item("codiceagente").value
    rsSub.movenext
    loop
    rsSub.close
    set rsSub = nothing
    
    if strSubagenti <> "" then
    
    if livello = 2 then
    strTotsub = "0"
    else
    
    set rs5 = server.CreateObject("adodb.recordset")
    strSQL5 = "SELECT SUM(fissoxl1) AS strTotsub FROM tabcontratto WHERE codiceagente IN ('"&strSubagenti&"') AND  accettato = true AND datacont BETWEEN #"&strdaData&"# AND #"&straData&"#"
    rs5.open strSQL5, objConn, 0, 3
    response.Write(strSql5)
    strTotsub = rs5.fields.item("strTotsub").value
    rs5.Close
    Set rs5 = Nothing
    end if
    end if
    strSubagenti mi da 3 risultati ma quando inserisco la variabile nella query in rs5 e stampo la query mi da un risultato solo!
    come mai?
    ho sbagliato il ciclo?o la query??

    grazie!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    Utente bannato
    Registrato dal
    Oct 2003
    Messaggi
    372
    l'elenco dovrebbe essere separeato da virgole.

    cmq prova con
    codice:
    strSQLsub="SELECT codiceagente FROM tabagente WHERE collegato = '"&arr_id(y)&"'"
    
    if livello = 2 then
    strTotsub = "0"
    else
    
    
    set rs5 = server.CreateObject("adodb.recordset")
    strSQL5 = "SELECT SUM(fissoxl1) AS strTotsub FROM tabcontratto WHERE codiceagente IN (("&strSQLsub&")) AND  accettato = true AND datacont BETWEEN #"&strdaData&"# AND #"&straData&"#"
    rs5.open strSQL5, objConn, 0, 3
    response.Write(strSql5)
    strTotsub = rs5.fields.item("strTotsub").value
    rs5.Close
    Set rs5 = Nothing
    end if

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    mi da questo errore:

    Microsoft JET Database Engine error '80040e14'

    Errore di sintassi (operatore mancante) nell'espressione della query 'codiceagente IN ('SELECT codiceagente FROM tabagente WHERE collegato = '123'') AND accettato = true AND datacont BETWEEN #2005/01/01# AND #2020/01/01#'.
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    Utente bannato
    Registrato dal
    Oct 2003
    Messaggi
    372
    susa, avevo sbagliato, avevo fatto una modifica ma non l'hai vista in tempo.

    codice:
    
    strSQL5 = "SELECT SUM(fissoxl1) AS strTotsub FROM tabcontratto WHERE codiceagente IN (("&strSQLsub&")) AND  accettato = true AND datacont BETWEEN #"&strdaData&"# AND #"&straData&"#"

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    ok! perfetto!!

    gia che ci sono chiedo una cosa:

    posso fare un ciclo for i dentro un'altro ciclo for y ??

    o si incasina tutto?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

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.