Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di asch
    Registrato dal
    Aug 2002
    Messaggi
    365

    errore nella stringa di conn al DB access

    Mi sapete indicare qual'è l'erore nella stringa SQL

    id campo tipo Contatore
    ip campo tipo Testo (es.82.49.191.228)
    robot campo tipo Numerico (vale 0 o 1)

    codice:
     SQL = "SELECT id, ip, robot FROM log WHERE robot = 0 GROUP BY ip ORDER BY id desc"
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.CursorLocation=3
    rs.Open SQL, conn
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function.
    ...............
    :::::ILNY::::::
    °°°°°°°°°°°°°°°

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    ma scusa a cosa ti serve quel group by ip? non fa niente. toglilo
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Se usi una sintassi di aggregazione (nel tuo caso group by) tutti gli altri campi devono specificare una sintassi di aggregazione che specifichi quale singolo valore dovrà essere preso.

  4. #4
    Utente di HTML.it L'avatar di asch
    Registrato dal
    Aug 2002
    Messaggi
    365
    Originariamente inviato da weppos
    Se usi una sintassi di aggregazione (nel tuo caso group by) tutti gli altri campi devono specificare una sintassi di aggregazione che specifichi quale singolo valore dovrà essere preso.
    Perfavore me la puoi scrivere tu? io non la so scrivere.

    La stringa SQL invece funziona con MySQL!:
    sql = "SELECT * FROM log WHERE robot = 0 GROUP BY ip ORDER BY id desc"
    ...............
    :::::ILNY::::::
    °°°°°°°°°°°°°°°

  5. #5
    Non posso scriverla io se non so cosa vuoi fare tu.

  6. #6
    Utente di HTML.it L'avatar di asch
    Registrato dal
    Aug 2002
    Messaggi
    365
    Lo scopo sarebbe quello di selezionare (SELECT) per ogni gruppo di righe IP la riga con ID desc.
    codice:
    esempio nel DB ho:
    
    ID|IP|robot
    1 |88.88.888.888|0
    2 |22.22.222.222|0
    3 |88.88.888.888|0
    4 |88.88.888.888|0
    5 |88.88.888.888|0
    6 |22.22.222.222|0
    7 |22.22.222.222|0
    8 |33.33.333.333|0
    
    SQL Divide in gruppi di righe per IP con ID desc
    
    5 |88.88.888.888|0 <<<---SELEZIONA
    4 |88.88.888.888|0
    1 |88.88.888.888|0
    
    7 |22.22.222.222|0 <<<---SELEZIONA
    6 |22.22.222.222|0
    2 |22.22.222.222|0
    
    8 |33.33.333.333|0 <<<---SELEZIONA
    
    Come risultato avrei
    response.Write rs("ID") & rs("IP") & rs("robot")
    
    5 |88.88.888.888|0
    7 |22.22.222.222|0
    8 |33.33.333.333|0
    ...............
    :::::ILNY::::::
    °°°°°°°°°°°°°°°

  7. #7
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    se raggruppi per ip devi necessariamente dire quale id voui vedere

    es max(id) ti fa verere id massimo
    sum(id) ti fa vedere la loro somma
    Count(id) ti dice quanti corrispondono al tuo ip
    Fero
    Vuoi conoscere nuovi Amici?

  8. #8
    Utente di HTML.it L'avatar di asch
    Registrato dal
    Aug 2002
    Messaggi
    365
    a me servirebbe che mi faccia vedere per ogni gruppo ip la riga con id massimo.
    Nell'SQL dove metto max(id)?

    SQL = "SELECT id, ip, robot FROM log WHERE robot = 0 GROUP BY ip ORDER BY id desc"
    ...............
    :::::ILNY::::::
    °°°°°°°°°°°°°°°

  9. #9
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    SQL = "SELECT max(id), ip, 0 FROM log WHERE robot = 0 GROUP BY ip ORDER BY id desc"


    così ti fa vedere l'id max e il robot è sempre uguale a 0 visto il where
    Fero
    Vuoi conoscere nuovi Amici?

  10. #10
    Utente di HTML.it L'avatar di asch
    Registrato dal
    Aug 2002
    Messaggi
    365
    ho fatto ma ho questo errore nel SQL:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function.
    ...............
    :::::ILNY::::::
    °°°°°°°°°°°°°°°

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.