1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| sql =""
sql = sql & " drop table #b "
sql = sql & " drop table #t "
sql = sql & "select * "
sql = sql & "into #b "
sql = sql & "from "
sql = sql & "(select e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id as numero, "
sql = sql & " e_compta_segments.periode, e_compta_segments.glinvoice as facture_numero, e_compta_segments.date_elbs as facture_periode "
sql = sql & " , e_compta_segments.devise,e_compta_segments.origine,"
sql = sql & " sum( credit_devise - debit_devise ) as montant_devise ,"
sql = sql & " sum( credit_euro - debit_euro ) as montant_euro,"
sql = sql & " ("
sql = sql & " sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + "
sql = sql & " (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) "
sql = sql & " from e_compta_segments as cd "
sql = sql & " where cd.origine = 'CD' "
sql = sql & " and cd.seg1 in ('401000', '404000', '425700') "
sql = sql & " and cd.periode <= '" & fin & "' "
sql = sql & " and cd.glinvoice = e_compta_segments.id "
sql = sql & " ) "
sql = sql & " ) as restant_euro_euro "
sql = sql & "from e_compta_segments "
sql = sql & "inner join e_general_fournisseurs "
sql = sql & "on fournisseur_id = fournisseur_numero "
sql = sql & "where e_compta_segments.origine = 'ap' "
if compte <> "*" then
sql = sql & " and e_compta_segments.seg1 = '" & compte & "' "
else
sql = sql & " and e_compta_segments.seg1 in ('401000', '404000', '425700') "
end if
if bureau <> "*" then
sql = sql & " and e_compta_segments.seg2 = '" & bureau & "' "
end if
if fournisseur_categorie <> "*" then
sql = sql & " and e_general_fournisseurs.fournisseur_categorie = '" & fournisseur_categorie & "' "
end if
if fournisseur_id <> "*" then
sql = sql & " and e_compta_segments.fournisseur_id = '" & fournisseur_id & "' "
end if
if fournisseur_nom <> "*" then
sql = sql & " and e_general_fournisseurs.fournisseur_nom like '%" & fournisseur_nom & "%' "
end if
sql = sql & "and e_compta_segments.periode <= '" & fin & "' "
sql = sql & "group by e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id , "
sql = sql & "e_compta_segments.periode, e_compta_segments.glinvoice , e_compta_segments.date_elbs ,e_compta_segments.devise,e_compta_segments.origine "
sql = sql & "having sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + "
sql = sql & " (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) "
sql = sql & " from e_compta_segments as cd "
sql = sql & " where cd.origine = 'CD' "
sql = sql & " and cd.seg1 in ('401000', '404000', '425700') "
sql = sql & " and cd.periode <= '" & fin & "' "
sql = sql & " and cd.glinvoice = e_compta_segments.id "
sql = sql & " ) <> 0 "
sql = sql & "and sum(credit_devise - debit_devise) <> 0 and sum(credit_euro - debit_euro) <> 0 "
sql = sql & ") as t "
sql = sql & "where devise ='EUR' "
sql = sql & "select * "
sql = sql & "into #t "
sql = sql & "from "
sql = sql & "(select e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id as numero, "
sql = sql & " e_compta_segments.periode, e_compta_segments.glinvoice as facture_numero, e_compta_segments.date_elbs as facture_periode "
sql = sql & " , e_compta_segments.devise,e_compta_segments.origine, "
sql = sql & " sum( credit_devise - debit_devise ) as montant_devise , "
sql = sql & " sum( credit_euro - debit_euro ) as montant_euro, "
sql = sql & " ( "
sql = sql & " sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + "
sql = sql & " (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) "
sql = sql & " from e_compta_segments as cd "
sql = sql & " where cd.origine = 'CD' "
sql = sql & " and cd.seg1 in ('401000', '404000', '425700') "
sql = sql & " and cd.periode <= '" & fin & "' "
sql = sql & " and cd.glinvoice = e_compta_segments.id "
sql = sql & " ) "
sql = sql & " ) as restant_euro_usd "
sql = sql & "from e_compta_segments "
sql = sql & "inner join e_general_fournisseurs "
sql = sql & "on fournisseur_id = fournisseur_numero "
sql = sql & "where e_compta_segments.origine = 'ap' "
if compte <> "*" then
sql = sql & " and e_compta_segments.seg1 = '" & compte & "' "
else
sql = sql & " and e_compta_segments.seg1 in ('401000', '404000', '425700') "
end if
if bureau <> "*" then
sql = sql & " and e_compta_segments.seg2 = '" & bureau & "' "
end if
if fournisseur_categorie <> "*" then
sql = sql & " and e_general_fournisseurs.fournisseur_categorie = '" & fournisseur_categorie & "' "
end if
if fournisseur_id <> "*" then
sql = sql & " and e_compta_segments.fournisseur_id = '" & fournisseur_id & "' "
end if
if fournisseur_nom <> "*" then
sql = sql & " and e_general_fournisseurs.fournisseur_nom like '%" & fournisseur_nom & "%' "
end if
sql = sql & "and e_compta_segments.periode <= '" & fin & "' "
sql = sql & "group by e_compta_segments.fournisseur_id, e_general_fournisseurs.fournisseur_nom, e_compta_segments.id , "
sql = sql & "e_compta_segments.periode, e_compta_segments.glinvoice , e_compta_segments.date_elbs ,e_compta_segments.devise,e_compta_segments.origine "
sql = sql & "having sum(e_compta_segments.credit_euro - e_compta_segments.debit_euro) + "
sql = sql & " (select isnull (sum( isnull(cd.credit_euro,0) - isnull(cd.debit_euro,0) ),0) "
sql = sql & " from e_compta_segments as cd "
sql = sql & " where cd.origine = 'CD' "
sql = sql & " and cd.seg1 in ('401000', '404000', '425700') "
sql = sql & " and cd.periode <= '" & fin & "' "
sql = sql & " and cd.glinvoice = e_compta_segments.id "
sql = sql & " ) <> 0 "
sql = sql & "and sum(credit_devise - debit_devise) <> 0 and sum(credit_euro - debit_euro) <> 0 "
sql = sql & ") as t "
sql = sql & "where devise ='USD' "
sql = sql & " drop table #a "
sql = sql & "select * "
sql = sql & "into #a "
sql = sql & "from ( "
sql = sql & "select "
sql = sql & "fournisseur_id, "
sql = sql & "fournisseur_nom, "
sql = sql & "restant_euro_usd, "
sql = sql & "0 as restant_euro_euro "
sql = sql & "from #t "
sql = sql & "union all "
sql = sql & "select fournisseur_id, "
sql = sql & "fournisseur_nom, "
sql = sql & "0 as restant_euro_usd, "
sql = sql & "restant_euro_euro "
sql = sql & "from #b) as a "
sql = sql & "select fournisseur_id, fournisseur_nom, sum(restant_euro_euro) as restant_euro_euro, sum(restant_euro_usd) as restant_euro_usd, "
sql = sql & "(sum(restant_euro_euro)+sum(restant_euro_usd)) as Montant_Du "
sql = sql & "from #a "
sql = sql & "where 1=1 "
sql = sql & "group by fournisseur_id, fournisseur_nom "
sql = sql & "having sum(restant_euro_euro) <>0 or sum(restant_euro_usd) <>0 "
sql = sql & "order by " & tri & " " & trisens |
Partager