Ciao,
ho la seguente stringa SQL che mi da errore, come si scrive?

SQL = "SELECT max(id), ip, 0 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 

Errore:
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.


La stringa invece così mi funziona con MySql!
SQL = "SELECT * FROM log WHERE robot = 0 GROUP BY ip ORDER BY id desc"



ho il mio db access con i seguenti campi:

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

Lo scopo sarebbe quello di selezionare (SELECT) per ogni gruppo di righe IP la riga con ID desc.


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
324 messaggi dal 20 settembre 2001
www.iromtek.com
hai provato con distinct?

"Il problema delle persone è che cercano negli altri qualità che questi non posseggono mentre dovrebbero apprezzare ed esaltare le qualità che gli altri realmente posseggono"
No, come si scrive l'SQL con distinct?
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Se il risultato che vuoi ottenere è quello che hai descritto, non ti servono nè funzioni di raggruppamento nè DISTINCT.

Devi semplicemente impostare correttamente i criteri di ordinamento dando la precedenza agli indirizzi Ip

SQL = "SELECT * FROM log WHERE robot = 0 ORDER BY ip DESC, id DESC"


Ciao

Ooops, mi era sfuggita una virgola
Modificato da vitosulla il 17 giugno 2005 16.26 -

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
vitosulla ha scritto:

Devi semplicemente impostare correttamente i criteri di ordinamento dando la precedenza agli indirizzi Ip

SQL = "SELECT * FROM log WHERE robot = 0 ORDER BY ip DESC, id DESC"




In questo modo mi stampa tutti i record, a me invece servirebbe che per ogni gruppo di ip mi stampa quello con id maggiore !

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.