drop table #b drop table #t select * into #b from (select e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id as numero, e_compta_segments.periode, e_compta_segments.glinvoice as facture_numero, e_compta_segments.date_elbs as facture_periode , e_compta_segments.devise,e_compta_segments.origine, sum( credit_devise - debit_devise ) as montant_devise , sum( credit_euro - debit_euro ) as montant_euro, ( sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) from e_compta_segments as cd where cd.origine = 'CD' and cd.seg1 in ('401000', '404000', '425700') and cd.periode <= '17/11/2008' and cd.glinvoice = e_compta_segments.id ) ) as restant_euro_euro from e_compta_segments inner join e_general_fournisseurs on fournisseur_id = fournisseur_numero where e_compta_segments.origine = 'ap' and e_compta_segments.seg1 in ('401000', '404000', '425700') and e_compta_segments.periode <= '17/11/2008' group by e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id , e_compta_segments.periode, e_compta_segments.glinvoice , e_compta_segments.date_elbs ,e_compta_segments.devise,e_compta_segments.origine having sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) from e_compta_segments as cd where cd.origine = 'CD' and cd.seg1 in ('401000', '404000', '425700') and cd.periode <= '17/11/2008' and cd.glinvoice = e_compta_segments.id ) <> 0 and sum(credit_devise - debit_devise) <> 0 and sum(credit_euro - debit_euro) <> 0 ) as t where devise ='EUR' select * into #t from (select e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id as numero, e_compta_segments.periode, e_compta_segments.glinvoice as facture_numero, e_compta_segments.date_elbs as facture_periode , e_compta_segments.devise,e_compta_segments.origine, sum( credit_devise - debit_devise ) as montant_devise , sum( credit_euro - debit_euro ) as montant_euro, ( sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) from e_compta_segments as cd where cd.origine = 'CD' and cd.seg1 in ('401000', '404000', '425700') and cd.periode <= '17/11/2008' and cd.glinvoice = e_compta_segments.id ) ) as restant_euro_usd from e_compta_segments inner join e_general_fournisseurs on fournisseur_id = fournisseur_numero where e_compta_segments.origine = 'ap' and e_compta_segments.seg1 in ('401000', '404000', '425700') and e_compta_segments.periode <= '17/11/2008' group by e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id , e_compta_segments.periode, e_compta_segments.glinvoice , e_compta_segments.date_elbs ,e_compta_segments.devise,e_compta_segments.origine having sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) from e_compta_segments as cd where cd.origine = 'CD' and cd.seg1 in ('401000', '404000', '425700') and cd.periode <= '17/11/2008' and cd.glinvoice = e_compta_segments.id ) <> 0 and sum(credit_devise - debit_devise) <> 0 and sum(credit_euro - debit_euro) <> 0 ) as t where devise ='USD' drop table #a select * into #a from ( select fournisseur_id, fournisseur_nom, restant_euro_usd, 0 as restant_euro_euro from #t union all select fournisseur_id, fournisseur_nom, 0 as restant_euro_usd, restant_euro_euro from #b) as a
select
fournisseur_id, fournisseur_nom, sum(restant_euro_euro) as
restant_euro_euro, sum(restant_euro_usd) as
restant_euro_usd, (sum(restant_euro_euro)+sum(restant_euro_usd)) as
Montant_Du from #a where 1=1 group by fournisseur_id, fournisseur_nom having sum(restant_euro_euro) <>0 or sum(restant_euro_usd) <>0 order by fournisseur_nom asc
Partager