Ho una tabella le cui colonne sono:
voto - categoria - utente
come faccio a trovare gli utenti che hanno preso 4 nella categoria 1 e 6 nella categoria 5?
grazie.
Ho una tabella le cui colonne sono:
voto - categoria - utente
come faccio a trovare gli utenti che hanno preso 4 nella categoria 1 e 6 nella categoria 5?
grazie.
scusa, ma non ha senso. il voto non può essere sia 4 che 6...
Prova così
codice:select utente, sum(if(voto=4 and categoria = 1,1,0)) as criterio1, sum(if(voto=6 and categoria = 5,1,0)) as criterio2 from tabella group by utente having criterio1 >= 1 and criterio2 >= 1
intanto grazie, sembra funzionare.
Mi spieghi perché hai fatto così? e che vuol dire 'categoria = 1,1,0'?
grazie
Semplicemente verifico se le due condizioni voto e categoria sono quelle che mi aspetto e in caso positivo assegno al campo valore 1, in caso contrario 0.
Una volta effettuato il raggruppamento per utente tramite la clausola having seleziono solo i record per i quali entrambe le condizioni (4 nella categoria 1 e 6 nella categoria 5) sono uguali o maggiori a 1, cioè vere.