Raggruppamenti Dinamici

max1974

Utente Attivo
7 Mar 2013
107
0
16
Salve ragazzi costruisco una una select su 2 tabelle relazionate (Tab1 Tabella Articoli +Tab2 Tabella Colori)
in base a dei filtri e dei raggruppamenti in maniera dinamica lato PHP,
la mia query è la seguente:

Codice:
SELECT tb_articoli.id AS id_art, tb_articoli.codice AS Cod_Art, tb_articoli.descrizione AS DArt, tb_product_dett.id_colore AS id_Col, tb_colori.descrizione AS DCol FROM tb_articoli
LEFT JOIN tb_colori ON tb_articoli.id_colore = tb_colori.id
ora potrebbe arrivarmi

GROUP BY id_art
GROUP BY id_Col

o nessuno dei due, ma quando ad esempio mi arriva il
2° raggruppamento per colore, potrei avere diversi articoli dello stesso colore (e cosi voglio che sia),
percui nel Cod_Art & DArt dovrei avere dati multipli,
come faccio a sapere se effettivamente ci sono dati multipli e eventualmente mettere una dicitura tipo "Dati Multipli" o roba del genere ??
Grazie
 

max1974

Utente Attivo
7 Mar 2013
107
0
16
Salve ragazzi costruisco una una select su 2 tabelle relazionate (Tab1 Tabella Articoli +Tab2 Tabella Colori)
in base a dei filtri e dei raggruppamenti in maniera dinamica lato PHP,
la mia query è la seguente:

Codice:
SELECT tb_articoli.id AS id_art, tb_articoli.codice AS Cod_Art, tb_articoli.descrizione AS DArt, tb_product_dett.id_colore AS id_Col, tb_colori.descrizione AS DCol FROM tb_articoli
LEFT JOIN tb_colori ON tb_articoli.id_colore = tb_colori.id
ora potrebbe arrivarmi

GROUP BY id_art
GROUP BY id_Col

o nessuno dei due, ma quando ad esempio mi arriva il
2° raggruppamento per colore, potrei avere diversi articoli dello stesso colore (e cosi voglio che sia),
percui nel Cod_Art & DArt dovrei avere dati multipli,
come faccio a sapere se effettivamente ci sono dati multipli e eventualmente mettere una dicitura tipo "Dati Multipli" o roba del genere ??
Grazie
potrei fare un qualcosa tipo
count( tb_articoli.codice)
contare i codici che vengono raggruppati ed se maggiore di 1 scrivere la dicitura "Dati Multipli" secondo voi ??
 

max1974

Utente Attivo
7 Mar 2013
107
0
16
potrei fare un qualcosa tipo
count( tb_articoli.codice)
contare i codici che vengono raggruppati ed se maggiore di 1 scrivere la dicitura "Dati Multipli" secondo voi ??
RISOLTOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!
ho inserito
count(distinct tb_articoli.codice) AS countCod
cosi conto quanti codici ci sono, poi metto tutto dentro una seconda select che mi controlla se ci sono piu di uno o se uno solo lo stampo.......

Codice:
SELECT
          (CASE WHEN qr.countCod>1 THEN  'Diversi Codici'  ELSE qr.Cod_Art END)AS Dat
          FROM(
SELECT tb_articoli.id AS id_art, tb_articoli.codice AS Cod_Art, tb_articoli.descrizione AS DArt, tb_product_dett.id_colore AS id_Col, tb_colori.descrizione AS DCol, count(distinct tb_articoli.codice) AS  countCod
FROM tb_articoli
LEFT JOIN tb_colori ON tb_articoli.id_colore = tb_colori.id
GROUP BY id_Col
)qr";