|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
rebonjour tous le monde ,
Je suis de nouveau devant un nouveau problème , je voudrais faire une requête sous designeur genre : Code :
IF (@SELECT(Articles\Stock)='0','Rupture de stock',@SELECT(Articles\Stock)) je n'arrive pas à reproduire la bonne syntaxe ,sachant dans la liste des fonctions il n'y a pas IFF(,,) ni de case when ! quelqu'un a une idée ? merci |
|
|
00
|
|
|
#2 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Bonjour,
en SQL mieux vaut utiliser decode(référence objet testé, critère1,réponse1,critère2,réponse2,sinon réponse) Code :
decode(@SELECT(Articles\Stock),'0','Rupture de stock',@SELECT(Articles\Stock))
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
merci Bruno2r
je viens de le faire ça marche par contre je voudrais faire ça pour calculer le chiffre d'affaire , si vente ou location mais je ne peux pas utiliser la fonction sum dans décode : decode(type,vente ,sum(prix*qtte),location,sum(prix*qtte*durée)) y a t'il une équivalence ? merci encore ne fois |
|
|
00
|
|
|
#4 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Une question pourquoi dois tu faire la somme ?
Ton calcul se fait ligne à ligne et après l'avoir fait en fonction du test tu peux faire la somme Donc ce qui se fait après .... s'écrit avant . En fait on calcule d'abord entre les parenthèses... pour faire simpleAs tu essayé Code :
sum(decode(type,'vente' ,prix*qtte,'location',prix*qtte*durée)) Dis moi si ça donne ce que tu veux
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
merci de ta réponse , j'ai essayé ça :
Code :
sum(decode(@SELECT(Prets Com\Type),'v',@SELECT(Articles\Prix) ,0)) Prets Com\Type est un char(1) , si je mets à la place de 'v' un numéro ça marche j'enduis que le problème vient de la comparaison de deux chaines de caractères
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
avec ça :
Code :
decode(@SELECT(Prets Com\Type),'v','test résultat' ,'test')) avec ça : Code :
sum(decode(@SELECT(Prets Com\Type),'v','test' ,0)) sachant que mon objet est de type numérique ! en alphanumérique même chose , si j'altère entre les deux types dans la fonction decode y a erreur
|
|
|
00
|
|
|
#7 |
![]() ![]() Bruno ROMAN-RUIZ Inscription : décembre 2006 Messages : 2 181 ![]() |
Je ne crois pas que Combinaison incimpatible d'objets soit en rapport avec le type de données.
Je crois plutôt que tes objets dépendent de tables trop éloignées l'une de l'autre ou sans jointures entre elles ou appartenant à des contextes différents. Tu aurais tout intérêt à créer une table dérivée (définie en sql portant sur les tables en question dont le select te fournirait les résultats attendus) J'ai failli te le proposer déjà pour ton chiffre d'affaire.
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!" |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
En vérifiant il y a une jointure entre mes deux tables sur article_id avec cardinalité 1N -1 , mais ce qui bizard c'est que dans les deux bouts de code précédents j'ai utilisé qu'une seule table "Prets Com" mais ça marche pas ! même type d'erreur je suis un peu perdu la ...
|
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
c'est vrai après mur réflexion(plein de test) je te dis que ta raison
![]() mais crée une table dérivé sous designeur je sais pas faire je dois peut être utiliser la fonction agrégate que je n'ai pas encore explorer ,parceque je ne peux toucher à la base de donnée qui m'a été fournie ( d'où la difficulté du projet de formation) |
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 571 ![]() |
j'ai reussi à régler le problème , j'ai crée un contexte sur la première table et je l'ai lier à la deuxième du coup tout marche bien je dois encore explorer le chemin des contextes à mon avis ! je te remercie Bruno2r pour ton aide
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com