Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Query MySql

  1. #1

    Query MySql

    Buongiorno,

    sto facendo un po di esercizi in MySql, avrei un dubbio su una cosa che non so fare:

    Ho 2 tabelle, squadre e persone.
    La chiave comune è il Codice della squadra (chiave esterna in persone.).
    Nella tabella persone c'è un flag che mi indica se la persona è attiva o meno all'interno della squadra.
    Dovrei selezionare e contare per ogni squadra quante persone sono operative e quante non operative con un'unica query.
    E' possibile?

    Se sì potrei avere qualche dritta anche dal punto di vista logico;
    Quello che sono riuscito per ora a fare è contare solo quelli operativi così:

    SELECT COUNT(*) AS conto FROM persone o JOIN squadre a ON a.codice = o.codice WHERE o.operativo='1'

    Grazie delle risposte.

    Ciao Ciao

  2. #2
    sono due condizioni diverse. Usa UNION

    codice:
    SELECT 'Operativi', COUNT(*) AS conto 
    FROM persone o 
    JOIN squadre a ON a.codice = o.codice 
    WHERE o.operativo='1'
    UNION
    SELECT 'Non Operativi', COUNT(*) AS conto 
    FROM persone o 
    JOIN squadre a ON a.codice = o.codice 
    WHERE o.operativo='0'
    operativi / non operativi sono stringhe e vanno tra apici e non backtick

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Grandee... ora provo e ti faccio sapere

  4. #4
    Grazie, funziona

  5. #5
    avrei bisogno però di sapere per ogni squadra quanti sono operativi e quanti no

  6. #6
    Originariamente inviato da critellus
    avrei bisogno però di sapere per ogni squadra quanti sono operativi e quanti no
    in questo caso devi raggruppare il risultato per squadra.

    Aggiungi la squadra ed il group by alla query di prima.

    codice:
    SELECT squadra, 'Operativi', COUNT(*) AS conto 
    FROM persone o 
    JOIN squadre a ON a.codice = o.codice 
    WHERE o.operativo='1'
    group by squadra
    UNION
    SELECT squadra, 'Non Operativi', COUNT(*) AS conto 
    FROM persone o 
    JOIN squadre a ON a.codice = o.codice 
    WHERE o.operativo='0'
    group by squadra

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    interessante... mi eserciterò su questo.

    ti ringrazio.

    ciao ciao

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.