MYSQL - Trouble with left join -
i'm looking bug in java swing (it isn't code) dynamically generates query. sorry big query, i've report here:
select b.codicecommercialeriferimento "comm. rif.", b.partitaiva "partitaiva", b.flgbustecartotecnica "tipo prodotto", b.classemerceologica "cl.merc.", periodo0.v periodo0, periodo3.v periodo3, periodo4.v periodo4 ( select distinct if (codicecommrif null, '', descrizionecommrif) codicecommercialeriferimento, commercialeriferimento, trim(concat(bolle.codicecliente, ' - ', anagraficaclientipi.ragionesociale1)) codiceclientepi, trim(concat(anagraficaclientipi.partitaiva, ' - ', anagraficaclientipi.ragionesociale1)) partitaiva, bolle.flgbustecartotecnica, if(descrizioneclm null, '', descrizioneclm) classemerceologica bolle left join codicicommercialiriferimento on codicecommrif = commercialeriferimento inner join anagraficaclienti anagraficaclientipi on bolle.codicecliente = anagraficaclientipi.codicecliente left join classemerceologica on bolle.classemerceologica = classemerceologica.codiceclm commercialeriferimento in ('001') , anagraficaclientipi.partitaiva in ('0569xxxx000') , bolle.flgbustecartotecnica in ('b','c') , bolle.classemerceologica '%%' ) b left join ( select distinct if (codicecommrif null, '', descrizionecommrif) codicecommercialeriferimento, commercialeriferimento, trim(concat(bolle.codicecliente, ' - ', anagraficaclientipi.ragionesociale1)) codiceclientepi, trim(concat(anagraficaclientipi.partitaiva, ' - ', anagraficaclientipi.ragionesociale1)) partitaiva, bolle.flgbustecartotecnica,if(descrizioneclm null, '', descrizioneclm) classemerceologica, sum(if (tipodocumento = 'n', -valoreconsegnato, valoreconsegnato)) v bolle inner join bollevalori on bolle.recordid = bollevalori.recordid left join codicicommercialiriferimento on codicecommrif = commercialeriferimento inner join anagraficaclienti anagraficaclientipi on bolle.codicecliente = anagraficaclientipi.codicecliente left join classemerceologica on bolle.classemerceologica = classemerceologica.codiceclm commercialeriferimento in ('001') , anagraficaclientipi.partitaiva in ('0569xxxx000') , bolle.flgbustecartotecnica in ('b','c') , bolle.classemerceologica '%%' , datafattura between '2010-01-01' , '2010-11-30' group commercialeriferimento,anagraficaclientipi.partitaiva,bolle.flgbustecartotecnica,classemerceologica ) periodo0 on b.commercialeriferimento = periodo0.commercialeriferimento , b.codiceclientepi = periodo0.codiceclientepi , b.flgbustecartotecnica = periodo0.flgbustecartotecnica , b.classemerceologica = periodo0.classemerceologica left join ( select distinct if (codicecommrif null, '', descrizionecommrif) codicecommercialeriferimento, commercialeriferimento, trim(concat(bolle.codicecliente, ' - ', anagraficaclientipi.ragionesociale1)) codiceclientepi, trim(concat(anagraficaclientipi.partitaiva, ' - ', anagraficaclientipi.ragionesociale1)) partitaiva, bolle.flgbustecartotecnica, if(descrizioneclm null, '', descrizioneclm) classemerceologica, sum(if (tipodocumento = 'n', -valoreconsegnato, valoreconsegnato)) v bolle inner join bollevalori on bolle.recordid = bollevalori.recordid left join codicicommercialiriferimento on codicecommrif = commercialeriferimento inner join anagraficaclienti anagraficaclientipi on bolle.codicecliente = anagraficaclientipi.codicecliente left join classemerceologica on bolle.classemerceologica = classemerceologica.codiceclm commercialeriferimento in ('001') , anagraficaclientipi.partitaiva in ('0569xxxx000') , bolle.flgbustecartotecnica in ('b','c') , bolle.classemerceologica '%%' , datafattura between '2008-01-01' , '2008-11-30' group commercialeriferimento,anagraficaclientipi.partitaiva,bolle.flgbustecartotecnica,classemerceologica ) periodo3 on b.commercialeriferimento = periodo3.commercialeriferimento , b.codiceclientepi = periodo3.codiceclientepi , b.flgbustecartotecnica = periodo3.flgbustecartotecnica , b.classemerceologica = periodo3.classemerceologica left join ( select distinct if (codicecommrif null, '', descrizionecommrif) codicecommercialeriferimento, commercialeriferimento, trim(concat(bolle.codicecliente, ' - ', anagraficaclientipi.ragionesociale1)) codiceclientepi, trim(concat(anagraficaclientipi.partitaiva, ' - ', anagraficaclientipi.ragionesociale1)) partitaiva, bolle.flgbustecartotecnica, if(descrizioneclm null, '', descrizioneclm) classemerceologica, sum(if (tipodocumento = 'n', -valoreconsegnato, valoreconsegnato)) v bolle inner join bollevalori on bolle.recordid = bollevalori.recordid left join codicicommercialiriferimento on codicecommrif = commercialeriferimento inner join anagraficaclienti anagraficaclientipi on bolle.codicecliente = anagraficaclientipi.codicecliente left join classemerceologica on bolle.classemerceologica = classemerceologica.codiceclm commercialeriferimento in ('001') , anagraficaclientipi.partitaiva in ('0569xxxx000') , bolle.flgbustecartotecnica in ('b','c') , bolle.classemerceologica '%%' , datafattura between '2008-01-01' , '2008-12-31' group commercialeriferimento,anagraficaclientipi.partitaiva,bolle.flgbustecartotecnica,classemerceologica ) periodo4 on b.commercialeriferimento = periodo4.commercialeriferimento , b.codiceclientepi = periodo4.codiceclientepi , b.flgbustecartotecnica = periodo4.flgbustecartotecnica , b.classemerceologica = periodo4.classemerceologica periodo0.v not null or periodo3.v not null or periodo4.v not null group b.commercialeriferimento,b.partitaiva,b.flgbustecartotecnica,b.classemerceologica;
the query bigger, reduced keep issue. here result:
"comm. rif." partitaiva "tipo prodotto" cl.merc. periodo0 periodo3 periodo4 stecca "0569xxxx000 - postem spa" b "commesse buste articoli speciali b" 2199544.40 null null stecca "0569xxxx000 - postem spa" b "inserti buste/sacchetti b" 3627807.30 null null stecca "0569xxxx000 - postem spa" b "prodotti finiti buste/sacchetti b" 8007.80 null null
so i've 2 last columns empty (null), whereas expected values. tried remove last sql code (group by) , surprisingly get:
"comm. rif." partitaiva "tipo prodotto" cl.merc. periodo0 periodo3 periodo4 stecca "0569xxxx000 - postem spa" b "inserti buste/sacchetti b" 3627807.30 null null stecca "0569xxxx000 - postem spa" b "prodotti finiti buste/sacchetti b" 8007.80 null null stecca "0569xxxx000 - postem spa" b "commesse buste articoli speciali b" 2199544.40 null null stecca "0569xxxx000 - postem spa" b "commesse buste articoli speciali b" null 3714106.25 4210464.05 stecca "0569xxxx000 - postem spa" b "inserti buste/sacchetti b" null 2080109.06 2487643.18
seems grouping... doesn't group! :-( idea?
group used aggregate functions, query has none.
if perform query say:
select a, b, c a_table group a, b
you get:
distinct values , b columns
an undetermined value c
so that's why "grouping doesn't group", that's not how it.
Comments
Post a Comment