PDA

Visualizza la versione completa : join sql con GROUP BY!!!!


desper
04-01-2005, 16:29
ciao a tutti,
il mio problema è la seguente select SQL:


SELECT a.cod_tip_file, a.cod_subtip_file, a.id_file_fisico,
b.des_file_fisico, b.des_object_type, b.des_local_file,
c.des_tip_file, d.des_subtip_file FROM file_logico a, file_fisico b,
tip_file c, subtip_file d WHERE a.cod_dit='000001' AND
a.cod_lingua='IT' AND a.cod_dit=b.cod_dit AND a.cod_dit=c.cod_dit AND
a.cod_dit=d.cod_dit AND a.cod_lingua=c.cod_lingua AND
a.cod_lingua=d.cod_lingua AND a.id_file_fisico=b.id_file_fisico AND
a.cod_tip_file=c.cod_tip_file AND a.cod_subtip_file=d.cod_subtip_file
AND c.cod_tip_file=d.cod_tip_file;

fin qui tutto ok, la join estrae i dati che mi servono in modo
corretto, ora però ho l'esigenza di raggrupparli per tipologia, ma quando aggiungo


GROUP BY cod_tip_file;

mi da il seguente errore:
Dynamic Page Generation Error: The column (cod_subtip_file) must be
in the GROUP BY list.

xchè?? dovè l'errore??? :nonlodire
ho visto anche su guide e manuali...
...a me sembra corretto!!!
aiutatemi!! :confused:

grazie
buon anno a tutti :stordita:

AlbertoPicca
04-01-2005, 16:51
Prova a leggere bene l'errore che ti viene mostrato, forse la soluzione la trovi in quel messaggio!
:ciauz:

FreeManX
04-01-2005, 21:40
servirebbe sapere anche come sono le tabelle :) la struttura

tommisceddu
04-01-2005, 22:29
il problema sta nel fatto che la group_list deve contenere tutti e non solo gli attributi della select_list quindi ti sta dicendo che nella group_list devi aggiungere anche cod_subtip_file poi quando aggiungerai questo attributo ti darà sicuramente un altro errore uguale am con un altro attributo della select_list fino a quando non li hai messi tutti.

devi risolvere il problema in un altro modo perchè così penso che non lo risolvi
:ciauz:

pprllo
04-01-2005, 22:36
GROUP BY si usa con funzioni che restituiscono i risultati di operazioni con insiemi di dati. A te invece dovrebbe bastare un semplice ORDER BY, no ?

desper
05-01-2005, 09:10
GROUP BY si usa con funzioni che restituiscono i
risultati di operazioni con insiemi di dati. A te invece
dovrebbe bastare un semplice ORDER BY, no ?
si infatti credo propio che risolverò in questo modo, anche se
in realtà la mia intenzione era quella di nn ripetere più volte
lo stesso titolo per lo stesso gruppo di dati, credo che questo
lo risolverò con un semplice controllo di uguaglianza!

grazie a tutti

:fagiano:

FreeManX
05-01-2005, 12:15
lo puoi anche risolvere con select distinct


bye bye

Loading