Visualizzazione dei risultati da 1 a 6 su 6

Discussione: query sql complessa

  1. #1

    query sql complessa

    Ciao a tutti, ho un grosso problema.
    Dovrei fare una query che mi restituisca una lista di valori oridinati per media voto ...
    Mi spiego:

    tabella SITI
    id
    nome
    url
    data

    tabella VOTI
    id
    idsito <-- corrisponde ad ID sulla tabella SITI
    voto
    data

    Quindi io devo trovare la lista di siti (quindi prendo i dati dalla tabella SITI) ordinati per media voto (quindi prendo i dati dalla tabella VOTI).

    Per adesso ho provato con:

    sql = "SELECT siti.id, siti.data, SUM(voti.voto) AS somma FROM siti LEFT JOIN voti ON siti.ID = voti.idsito ORDER BY somma, voti.data desc, voti.ID desc"

    Ovviamente mi da errore ...

    Cosa mi suggerite?

    Grazie a tutti.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  2. #2

    Re: query sql complessa

    Originariamente inviato da MrRam
    Ciao a tutti,
    ...........
    Cosa mi suggerite?
    Ciao ,

    una cosa del genere

    codice:
    select s.id, s.data, v.MediaVoti
    from siti as s
    Left join
    (
     select idsito, Avg(voto) as MediaVoti
     from voti group by idsito
    ) as v
    on s.id=v.idsito
    order by MediaVoti

  3. #3
    E' perfetta, funziona alla grande!

    Una sola domanda, come posso con avg trovare la media con almeno due decimali?

    Adesso x es ho 9
    Vorrei 9,55

    ho provato con il FORMATNUMBER:

    strTOTVOTI = rsv("somma")
    strTOTVOTI = ("Voto ") & Formatnumber(strTOTVOTI,2) & ("")

    Mi esce però sempre un ",00".

    Ciao.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  4. #4
    up up
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  5. #5
    HO risolto così:

    cast(sum(voto) AS FLOAT)/COUNT(voto)

    vi rignrazio comunque per il prezioso supporto.
    Marco Lombardo.
    Le inezie fanno la prefezione, e la perfezione non è una inezia (Michelangelo).
    about.me/marco.lombardo
    marco.lombardo@gmail.com

  6. #6
    Originariamente inviato da MrRam
    HO risolto così:

    cast(sum(voto) AS FLOAT)/COUNT(voto)

    vi rignrazio comunque per il prezioso supporto.
    ...puoi fare anche

    codice:
    select... avg(cast(voto as float)) etc..

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 © 2026 vBulletin Solutions, Inc. All rights reserved.