Topic: Pubblico - Composto da 3 Posts di 2 Utenti.
| 18 Settembre, 2011 21:22 | #1 | ||
|---|---|---|---|
|
Mi servirebbe un aiuto per questa query... praticamente il mio database modella il parlamento. SELECT v.idlegge, count(V.voto), count(V1.voto) Però non funziona... SELECT v.idlegge, count(all V.voto) Favorevoli, count(all V1.voto) Contrari, count(all V2.voto) Astenuti
Ultima modifica 19 Settembre, 2011 05:49 di OltreLeStelle |
|||
| 19 Settembre, 2011 12:42 | #2 | ||
|---|---|---|---|
|
Che strano esercizio. Per ogni legge devi estrarre un solo record o puoi estrarne 3? Perchè in questo caso basta GROUP BY: 1SELECT count(*) FROM vota GROUP BY v.id_legge, v.voto |
|||
| 19 Settembre, 2011 12:49 | #3 | ||
|---|---|---|---|
|
Però mi viene in mente che, per avere tutto in un record, se proprio non puoi usare le subquery, puoi fare: 1SELECT count(favorevoli.voto), count(astenuti.voto), count(contrari.voto) 2FROM (voto favorevoli JOIN voto astenuti ON favorevoli.idlegge = astenuti.idlegge) 3JOIN voto contrari ON favorevoli.idlegge = contrari.idlegge 4WHERE favorevoli.voto = 'favorevole' AND astenuti.voto = 'astenuto' AND contrari.voto = 'contrario' 5GROUP BY favorevoli.idlegge; Nota che potresti anche spostare le tre condizioni della WHERE nella ON, che magari è più chiaro per un essere umano, anche se forse rallenta un pochino.
Ultima modifica 19 Settembre, 2011 12:51 di fuser |
|||
Condividi su:
Loggati o Registrati per replicare