Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Query con count

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65

    Query con count

    salve a tutti, sto impazzendo con una query banale, ma proprio non riesco a venirne a capo..

    Ho 2 tabelle con i seguenti campi:

    table cellulare:
    id_cellulare, modello

    tabella riparazione:
    id_riparazione, open, id_cellulare

    e voglio fare una select dove mi restituisca tutti i cellulari presenti nel database, con le relative riparazioni aperte, se sono presenti.

    ho fatto questa select:

    SELECT id_cellulare, modello COUNT(DISTINCT open) as ticket_open
    FROM riparazione NATURAL JOIN cellulare
    GROUP BY sigla";

    ma mi ritorna solo i cellulari con 1 ticket aperto, invece io vorrei visualizzare tutti i cellulari, con a fianco un campo il numero di riparazioni aperte.

    a forza di sbatterci la testa, mi sta venendo la fronte quadrata!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select c.modello,count(r.open) as quante 
    from riparazione as r
    inner join cellulare as c
    on c.id_cellulare = r.id_cellulare
    group by c.id_cellulare
    Non mi è chiaro se il campo open sia del tipo 1/0 per indicare lo stato di apertura o meno.

    Ricordati che devi specificare il db utilizzato, come chiaramente indicato nel regolamento.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    65
    pardon: il database è MYSQL, il campo open è di tipo 1/0, ovvero se c'è una riparazione aperta c'è un "1", sennò è "0".

    ora testo il codice...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da fuxio82
    il campo open è di tipo 1/0, ovvero se c'è una riparazione aperta c'è un "1", sennò è "0".
    Come immaginavo. Allora la query va leggermente modificata.

    codice:
    select c.modello,sum(if(r.open=1,1,0)) as aperta
    from riparazione as r
    inner join cellulare as c
    on c.id_cellulare = r.id_cellulare
    group by c.id_cellulare

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.