Bonjour.
Je cherche, par requete sql, a cadrer entre un nr dans le module factures d'Oracle Financial et le nr equivalent dans le module comptabilite genererale d'Oracle Financial.
Cote AP (module factures), le champ contient des 0 de facon a arriver a 9 caracteres. Dans le module GL (comptabilite generale), le champ contient uniquement le nr.
Par exemple dans AP j'ai 000012546 et dans GL j'ai 12546
De temps a autre, le champ a ete mal alimente et contient des caracteres non numeriques. Exemple 12546. ou une date au lieu du nr
Je cherche a faire apparaitre les ecarts montants (ou l'absence du nr cote GL) entre AP et GL.
J'ai deux solutions pour le faire :
1) to_number sur chaque champ (cote AP et cote GL) : si le champ contient un caractere non numerique, la requete tombe en erreur
2) rajouter des 0 dans le champ cote GL.
Pour faire ce point 2), j'ai, dans le select, rajoute la chose suivante :
J'avais aussi essaye :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select ...... (case length(gl.ATTRIBUTE14) when 1 then lpad(gl.ATTRIBUTE14,0,8) when 2 then lpad(gl.ATTRIBUTE14,0,7) when 3 then lpad(gl.ATTRIBUTE14,0,6) when 4 then lpad(gl.ATTRIBUTE14,0,5) when 5 then lpad(gl.ATTRIBUTE14,0,4) when 6 then lpad(gl.ATTRIBUTE14,0,3) when 7 then lpad(gl.ATTRIBUTE14,0,2) when 8 then lpad(gl.ATTRIBUTE14,0,1) else gl.ATTRIBUTE14) from where
Apres avoir fait differents essais dans Toad qui m'a annonce un "missing keyword", j'ai essaye la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select ...... (case gl.ATTRIBUTE14 when length(gl.ATTRIBUTE14) = 1 then lpad(gl.ATTRIBUTE14,0,8) when length(gl.ATTRIBUTE14) = 2 then lpad(gl.ATTRIBUTE14,0,7) when length(gl.ATTRIBUTE14) = 3 then lpad(gl.ATTRIBUTE14,0,6) when length(gl.ATTRIBUTE14)=4 then lpad(gl.ATTRIBUTE14,0,5) when length(gl.ATTRIBUTE14)=5 then lpad(gl.ATTRIBUTE14,0,4) when length(gl.ATTRIBUTE14)=6 then lpad(gl.ATTRIBUTE14,0,3) when length(gl.ATTRIBUTE14)=7 then lpad(gl.ATTRIBUTE14,0,2) when length(gl.ATTRIBUTE14)=8 then lpad(gl.ATTRIBUTE14,0,1) else gl.ATTRIBUTE14) from where
J'ai encore le message "Missing keyword".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select ------ (case length(gl.ATTRIBUTE14) when 1 then lpad(gl.ATTRIBUTE14,0,8) when 2 then lpad(gl.ATTRIBUTE14,0,7) when 3 then lpad(gl.ATTRIBUTE14,0,6) when 4 then lpad(gl.ATTRIBUTE14,0,5) when 5 then lpad(gl.ATTRIBUTE14,0,4) when 6 then lpad(gl.ATTRIBUTE14,0,3) when 7 then lpad(gl.ATTRIBUTE14,0,2) when 8 then lpad(gl.ATTRIBUTE14,0,1) else lpad(gl.ATTRIBUTE14,0,0)) from where
Comment puis-je resoudre mon probleme et rajouter des 0 pour que le champ nr dans GL ait le meme format que celui dans AP et, ainsi, cadrer ?
Merci.
Cdlt.
Partager