Problème Script sql developer Oracle - SQL/NoSQL - Programmation
Marsh Posté le 10-12-2014 à 12:59:02
Premier point
il n'est pas clair "si Donnée9 est vide" tu veux dire si l.ref1 est null, plutôt, non ?
Je ferais (utilisation de coalesce plutôt que NVL, qui est du pur Oracle).
Mais je pense que ton problème vient seulement de l'ordre des paramètres de NVL.
Code :
|
ou si ce n'est pas forcément null que tu veux remplacer, mais aussi un string avec uniquement des espaces
Code :
|
Deuxième point
ABS ne supprime pas les décimales, donc ton problème doit venir d'ailleurs.
De manière générale
Les jointures avec les =xxx(+) sont franchement à oublier. C'est une vieillerie d'Oracle à éviter le plus possible.
Idem pour les autres jointures.
Il ne devrait y avoir qu'une table dans la clause FROM et des INNER JOIN, LEFT JOIN ou RIGHT JOIN pour les tables liées.
Marsh Posté le 10-12-2014 à 14:53:57
Merci beaucoup c'est très gentil.
Premier Point
Désolé, j'ai mal expliqué. C'est effectivemment ce que je voulais dire.
La valeur de l.ref1 n'est pas forcément null, donc j'ai utilisé ton 2ème code
[cpp]
case when l.ref1 is null or trim(l.ref1) = '' then concat(h.doccode, h.docnum) else l.ref1 end as Donnée9
[cpp]
Mais voila ce que j'ai eu comme message :
ORA-00923: mot-clé FROM absent à l'emplacement prévu |
Deuxieme point
Le probléme des décimales peut être dû à quoi à votre avis ? sachant que le type de la colonne est NUMBER
D'avance merci,
Marsh Posté le 10-12-2014 à 16:16:38
Point1
il ne faut pas oublier la virgule à la fin de la ligne (après le as Donnée9 )
Point2
Dans ta base, tu as des décimales dans ce champ (si tu fais une requête simple sur la table) ?
Cette colonne est en NUMBER (tout court), pas de precision ou de scale spécifié ?
Marsh Posté le 10-12-2014 à 17:15:35
Oups, j'avais oublié la virgule.
Donc merci beaucoup ça marche pour le premier point.
Concernant le Point 2 : J'ai bien des décimales dans le champ, et la colonne est en NUMBER tout court !
et si je fais une requête simple sur cette table j'ai pas le résultat non plus. C'est bizzar !
Marsh Posté le 11-12-2014 à 14:51:55
Merci beaucoup pour ton aide deliriumtremens.
Marsh Posté le 11-12-2014 à 15:05:14
Mais c'est volontiers... Tu as vaincu le mystère des décimales disparues ?
Marsh Posté le 12-12-2014 à 09:42:04
Oui je l'ai vaincu
Par contre la c'est un autre souci que j'ai, je sais pas si tu pourrai m'aider
J'aimerai savoir comment forcer l'affichage des décimales quand le nombre est entier (Quand 5 m'afficher 5,00) sans utiliser TO_CHAR.
Puisque quand j'utilise TO_CHAR le format de mes données change en caractères alors que je les veux en format nombre.
Je te remercie d'avance pour ton retour.
Marsh Posté le 12-12-2014 à 10:41:33
Hmmm, pas moyen je crois.
Cela dit, l'affichage des décimales devrait se faire au "dernier moment"... ou au niveau applicatif.
Marsh Posté le 10-12-2014 à 12:40:38
Bonjour,
Je suis assez débutant sur SQL Developper et j'aimerai avoir votre aide svp.
Dans une requête
Mon premier problème au niveau de cette ligne :
Je veux que : Si Donnée9 est vide, concaténer doccode et docnum.
Mais le problème c'est qu'il fait un concaténer pour toutes les colonnes Donnée9 même ceux qui présentent une valeur.
Mon second problème au niveau de cette ligne :
Ce que je veux, c'est qu'il me prend la valeur absolue de Donnée17 avec les décimales.
Mais le problème c'est qu'il ne prend pas les décimales, mais que les entiers.
Pouvez-vous m'aider svp ?
Merci d'avance