Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [MySQL] Query con più count()

    Ciao ragazzi!
    Mi servirebbe un aiuto per questa query... praticamente il mio database modella il parlamento.
    Ho due entità LEGGE e MINISTRO e una relazione N,N tra le due di nome VOTA.
    Dentro a Vota c'è il voto di ogni ministro per ogni legge.
    Voglio creare una query NON NIDIFICATA (cosi chiede esplicitamente il testo) che mi dica per ogni legge quanti voti sono favorevoli, quanti astenuti e quanti contrari... è possibile farlo senza nidificazione? Io riesco solamente a farlo mettendo una subquery nella from (cosi è nidificata giusto?)
    Ho buttato giù una cosa del genere ma non funziona :

    SELECT v.idlegge, count(V.voto), count(V1.voto)
    FROM vota V RIGHT JOIN ministro M ON V.idministro=M.idministro, vota V1 RIGHT JOIN ministro M1 ON V1.idministro=M1.idministro
    WHERE V.voto="Favorevole" AND V1.Voto="Contrario"
    GROUP BY v.idlegge;

    Però non funziona...
    Dove sbaglio? Grazie anticipate

  2. #2
    Notavo che effettivamente posso usare la sola tabella vota in quanto non mi interessano i ministri scrivendo :

    SELECT v.idlegge, count(all V.voto) Favorevoli, count(all V1.voto) Contrari, count(all V2.voto) Astenuti
    FROM vota V, vota V1, vota V2
    WHERE V.voto="Favorevole" and V1.Voto="Contrario" and V2.Voto="Astenuti"
    GROUP BY v.idlegge
    Ma non funziona neanche cosi...

  3. #3
    Ciao OltreLeStelle

    Se stai lavorando su MySQL puoi usare SUM():

    codice:
    SELECT idlegge, 
    SUM( voto = 'Favorevole' ) AS Favorevoli,
    SUM( voto = 'Contrario' ) AS Contrari,
    SUM( voto = 'Astenuti' ) AS Astenuti
    FROM vota
    GROUP BY idlegge
    In pratica, ogni volta che la condizione dentro SUM() è verificata il valore restituito è 1, per cui la somma dà il conto dei record.

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.