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

    Somma dati mdb con doppia sql... come risolvere?

    Posto un nuovo quesito... o meglio un problema che non riesco a risolvere

    Ho una pagina che mostra un elenco di nomi dove devo fare la somma tra quelli appartenenti allo stesso team... ad esempio:

    Luca pt. 15 team 1
    Paolo pt. 10 team 2
    Marco pt. 5 team 2


    Il codice dovrebbe restituirmi la riga:

    Team 1 pt. 15; team 2 pt. 15

    A seguire il codice...

    codice:
    ' Mi connetto alla tabella foto e inizio il ciclo
    
    <%
    Set oConn=Server.CreateObject("ADODB.Connection")
    oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "mdb-database\concorso.mdb"
    
    
    sql="SELECT * FROM tb_foto WHERE ft_concorso=" & REQUEST("id_concorso") & " ORDER by ft_voto desc"
    Set oRs = Server.CreateObject("ADODB.Recordset")
    Set oRs = oConn.Execute(sql)
    
    %>
    
    <% do while not oRs.EOF%>
    
    ' Stampo il numero dela team e il nome dell'autore
    
    <%=oRs("ft_team")%> (<%=oRs("ft_autore")%>

    A questo punto dovrei fare la somma dei dati di tutti i partecipanti al team X... quindi procedo con una seconda connessione alla tabella dove

    codice:
    <%
    sql="SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=" & team
    Set oRs1 = Server.CreateObject("ADODB.Recordset")
    Set oRs1 = oConn.Execute(sql)
    
    
    response.write oRs1("totale")
    
    
    oRs1.close
    %>

    Ma ricevo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
    [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
    /admin_areafotoscriba/05_concorsi_partecipanti.asp, line 249


    ovvero

    Set oRs1 = oConn.Execute(sql)

    Uff qualche consiglio?

    Grazie

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    stampa la query, vedrai che manca un dato:
    Data type mismatch in criteria expression

  3. #3
    L'errore lo trovo nel passare alla somma di discorso... fai la somma dove il valore TEAM è uguale a quello che stai mostrando nel oRs precedente... ma come fare?

    Se tolgo il riferimento del codice sotto lui mi fa la somma di tutti i campi, anche dove l'ft_team è diverso :-(

    WHERE ft_team="& team

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    quello di non voler stampare la query per vedere l'errore (ovvero cosa manca), è una scelta religiosa?

  5. #5
    Sono alle prime armi :-D spero vada bene quello che ho fatto per stamparla

    Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6);Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6);Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6);Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6);

  6. #6
    Sorry... sistemato l'sql e adesso mi stampa cosi...

    Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 6 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=6); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=5); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=5); Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=5);Team 5 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=5); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=4); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=4); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=4); Team 4 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=4); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=3); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=3);Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=3); Team 3 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=3); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=2); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=2); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=2); Team 2 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=2); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=1);Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=1); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=1); Team 1 (SELECT SUM(ft_voto) as totale FROM tb_foto WHERE ft_team=1);

    Però di restituisce sempre...

    ADODB.Recordset error '800a0cc1'Item cannot be found in the collection corresponding to the requested name or ordinal./admin_areafotoscriba/05_concorsi_partecipanti.asp, line 306

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    scusa... era "tipo dati non corrispondente", non "non trovati".
    a parte questo (vedi tu dove sta l'errore... il campo ft_team è numerico?)
    è chiaro che non puoi proseguire in questo modo: avrai valori ricorsivi assolutamente inutili.


    Quote Originariamente inviata da lucamares Visualizza il messaggio
    Ho una pagina che mostra un elenco di nomi dove devo fare la somma tra quelli appartenenti allo stesso team... ad esempio:

    Luca pt. 15 team 1
    Paolo pt. 10 team 2
    Marco pt. 5 team 2


    Il codice dovrebbe restituirmi la riga:
    Team 1 pt. 15; team 2 pt. 15
    ma deve restituirti anche il nome utente, così?

    Luca pt. 15 team 1
    Paolo pt. 15 team 2
    Marco pt. 15 team 2

    o come hai detto dopo?

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.