Visualizzazione dei risultati da 1 a 3 su 3

Discussione: SQL su 2 tabelle

  1. #1

    SQL su 2 tabelle

    Ciao a tutti, ho una tabella in cui vengono registrati tutti i feedback dei vari prodotti di un catalogo da parte degli utenti...
    tra i vari campi vi è id_utente(chiave est. in relazione con la tabella "utenti") sto cercando di eseguire una select che mi restituisca i primi 3 utenti che hanno scritto più feedback.
    con questa stringa riesco a farlo:
    codice:
    SELECT top 3 COUNT(*) AS n_feed, id_utente  FROM feed WHERE valido = 'si' GROUP BY id_utente ORDER BY 'n_feed' desc
    e stampo l'id_utente con il numero di post:
    <%= rs("id_utente") %>(<%= rs("n_feed") %>)

    ora però mi serve anche l'userid (campo della tabella utenti) in modo da stampare il nick dei 3 utenti + attivi e non il loro numero id insignificante...

    Ho provato così:

    codice:
    SELECT top 3 COUNT(*) AS n_feed, utenti.userid FROM feed INNER JOIN utenti ON feed.id_utente = utenti.id_utente WHERE feed.valido = 'si' GROUP BY feed.id_utente ORDER BY 'n_feed' desc
    ma restituisce questo errore:

    You tried to execute a query that does not include the specified expression 'userid' as part of an aggregate function

    Avevo avuto un problema simile ultimamente ma non ritrovo il post...
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  2. #2
    Devi specificare anche una funzione di affregazione per l'ID tipo Max(utenti.userid) As MaxId

  3. #3
    Prima di leggere la tua risposta avevo risolto in questo modo:
    codice:
    strSQL_feed = "Select count(*) as n_feed, id_utente from feed where valido = 'si' group by id_utente"
    			set rs = cn.execute(strSQL_feed)
    			while not rs.eof
    				n_feed = rs("n_feed")
    				id_utente = rs("id_utente")
    				set userset = cn.execute("select userid from utenti where id_utente = "&id_utente&"") %>
    				<%= userset("userid") %>(<%= n_feed %>)
    				<%
    				userset.close
    				set userset = nothing
    			rs.moveNext
    			wend 
    			rs.close
    			set rs = nothing
    Ho provato anche il tuo esempio e mi funziona, quale mi consigli tra i due? Intendo quale secondo te spreca meno risorse ed è più performante.
    Grazie
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

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.