Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822

    PHP: query x selezionare dati univoci

    Ciao

    ho una tabella fatta cosi:

    articolo | magazzino
    a10 | libero
    a10 | libero
    a10 | impegnato
    a10 | libero
    a10 | libero
    a10 | impegnato su commessa
    a10 | impegnato su commessa


    Ho la necessità di contare in modo distinto gli articoli A10 che hanno il campo magazzino='libero', quelli che hanno magazzino ='impegnato' e altri ancora. In pratica ecco cosa deve uscire:

    a10 | 3 ( libero )
    a10 | 1 ( impegnato )
    a10 | 2 ( impegnato su commessa)

    E tanti altri ancora. Non riesco a fare la query in modo che conta in modo distinto l'articolo con il suo magazzino completo
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  2. #2
    prova cosi':

    codice:
    SELECT articolo, magazzino, count(*) as qta FROM tabella GROUP BY magazzino,articolo;
    ______________________________________

    Progresso Web.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così:
    codice:
    SELECT articolo, count(*) as num FROM tabella GROUP BY magazzino;

    ciao

    [EDIT] ops..sorry caruccis, avevo il box di risposta aperto...sorry

  4. #4
    codice:
    mysql> select * from tabella;
    +-----+-----------------------+
    | a   | b                     |
    +-----+-----------------------+
    | A10 | LIBERO                |
    | A10 | LIBERO                |
    | A10 | IMPEGNATO             |
    | A10 | LIBERO                |
    | A10 | LIBERO                |
    | A10 | IMPEGNATO SU COMMESSA |
    | A10 | IMPEGNATO SU COMMESSA |
    +-----+-----------------------+
    
    mysql> select a,b,count(*) from tabella group by b,a;
    +-----+-----------------------+----------+
    | a   | b                     | count(*) |
    +-----+-----------------------+----------+
    | A10 | IMPEGNATO             |        1 |
    | A10 | IMPEGNATO SU COMMESSA |        2 |
    | A10 | LIBERO                |        4 |
    +-----+-----------------------+----------+

  5. #5
    SELECT DISTINCT (magazzino), articolo FROM nome_tabella

    Fai attenzione perchè nel risultato avrai prima la colonna magazzino e poi libero


    Edit

    Credo che le loro soluzioni siamo migliori xD
    Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)

  6. #6
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Grazie a tutti x le risposte. HO provato ad applicare i vostri consigli ma non funziona. La query è un po piu complicata di come l'avevo esposta all'inizio in quanto agisce su più tabelle.

    SELECT articolo.articolo, magazzino.magazzino, count(*) FROM articolo, magazzino, magazzini WHERE articolo.articolo = magazzino.articolo AND magazzino.magazzino=magazzini.ID and magazzini.ID in (\'impegnato\' , \'inCommessa\' , \'inLavorazione\' , \'libero\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' , \'\' ) group by magazzino.magazzino, articolo.articolo

    Ho provato a fare come mi ha detto "ilc0rv0" sostituendo i valori a,b di volta in volta. Ma niente : come risultato ho
    a10 = 6

    INvece dovrebbe essere 1 in quanto in tabella tutti gli articoli a10 hanno magazzino LIBERO per cui dovrebbe prenderne uno solo
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  7. #7
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Ho provato la tua query su una sola tabella pero invece che raggrupparli come dici tu mi da sempre il numero completo degli articoli

    $query = "SELECT articolo, magazzino, count(*) FROM magazzino WHERE articolo='b10' GROUP BY magazzino, articolo";


    Risultato = 6
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così:
    codice:
    $query = "SELECT articolo, magazzino, count(*) FROM magazzino GROUP BY magazzino, articolo";
    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.