|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Bonjour,
J'ai un problème avec la syntaxe du case Est-ce que je pourrais mettre Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : août 2007 Messages : 132 ![]() |
J'avoue que j'ai pas bien compris la question.
Mais, je crois que la vraie syntaxe du CASE WHEN, c'est : Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Si j'ai bien compris, ce que tu veux écrire c'est çà non :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Bonjour,
Tout d'abord je vous remercie pour vos réponses. Ce que je voulais dire déja est-ce que je peux mettre: J'ai un tableau je veux faire le case qui porte sur deux colonnes par exemple Par avance Merci |
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Tu ne dois pas mettre après ton CASE (Champ1,Champ2), ce n'est pas la syntaxe.
Par contre je ne vois pas quel est ton problème. Si t'as condition porte sur deux colonnes, rien ne t'empêche d'écrire : Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Merci tfc3146,je vais le tester.
Par contre je veux faire une mise enforme d'un rapport ou j'ai la première colonne qui est groupée (Pays) Je veux qu'à chaque changement de pays, il m e trace une ligne. Merci d'avance |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Bonjour,
Imaginons que tu as une liste avec en première colonne les pays et en seconde les villes de ces pays, avec le grouping sur les pays. L'idée de base est d'avoir dans le SQL un rank() sur les villes, groupées par pays, ce qui donnerait: Code :
Tu utilises cette variable sur chaque colonnes de la liste (ListColumn body), et tu appliques le fomattage si la valeur de la variable est TRUE -> border-top: 1px. (perso, dans ce cas, je mets mes bordures horizontales par défaut a 0.25px) Attention toute fois a la manière dont tu as besoin d'ordonner le tableau: en fonction du sorting appliqué dans la liste, il te faudra revoir / changer le rank(). (order by ... desc, ou autres, par exemple, a toi de voir en fonction de tes besoins / situtations) Je sais que - pour Oracle au moins - les fonctions du type rank() sont accessibles en local, donc faisable dans un dataItem Cognos, si pas possible d'agir au niveau du SQL même. En espérant t'aider, @+
__________________
Citation:
Mon dernier trip musical Citation:
|
||||
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Merci pour ta réponse Sunchaser,
Par contre je travaille sur report studio de Cognos. Je suppose que ce n'est pas ça qu'il faudra que je fasse Par avance Merci |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Je pense que dans ton cas un regroupement par pays et l'ajout d'une simple bordure en bas de ta liste suffise
|
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Moi aussi,
Cognos 8.4 (et autres...), pour la partie reporting de mon travail. Donc voici qq images, pour illustrer: . J'ai un rapport avec liste de pays et sites (: img_report), fait d'un liste simple (: img_report_list). La liste est alimentée par un QueryItem simple (: img_query_item), et tu peut voir le dataItem utilisé pour le ranking dans l'image (: img_data_item). J'utilise ce dataItem dans une variable Boolean, voir (: img_variable), qui est utilisée pour le style conditionnel des colonnes (: img_var_in_column). Voili, @+ PS: mais la dernière image ne passe pas, apparemment c'est limité a 5. Dsl. PS bis (le retour): attention aux propriétés un peu particulières de la fonction "rank()" en local, qui semble prendre par défaut DESC au lieu de ASC (ce qui est étonnant selon moi, m'enfin); je n'avais encore pas vu cela, comme je fais d'habitude tout ça dans le SQL.
__________________
Citation:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Merci à tous pour vos réponses.
Dans mon cas, je travail avec un tableau, est-ce que c'est le même principe que je dois appliquer. Merci à vous |
|
|
00
|
|
|
#12 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Bonjour,
Qu'appelles tu par "tableau" ? Ou quelle différence fais tu avec ce que j'utilise dans mon petit test ? J'ai pris l'objet "List" de Cognos, je ne sais pas en Français quelle dénomination lui a été donnée (des fois, les traductions sont étonnantes, surtout dans les messages d'erreur d'ailleurs), voir la pièce jointe. Néanmoins, a partir du moment ou tes données sont présentées et ordonnées de la bonne manière, cela doit pouvoir fonctionner. Je te propose d'essayer, tout simplement. Note: pour l'objet "List", dans mon exemple, j'ai oublié de mentionner qu'il faut ouvrir la propriété "Properties" de l'objet, et cocher la case "mon_rank" (ou "mon_rank" est le nom du DataItem utilisé pour le ranking), sinon message d'erreur lorsque l'on tente de lancer le rapport. Voili ++
__________________
Citation:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
c'est un tableau croisé dynamique.
par contre je n'est pas bien saisie l'histoire de l'Item, c'est l'equivalent d'une variable ? Est-ce que je pourais créer une variable booléenne, et dire à chaque changement de pays tracer la ligne par exemple. En plus j'au un autre soucis dans les calculs cette fois ci dans mon tableau j'ai le pays et les ville groupement sur pays, et en colonne les mois, et un total qui vient s'ajouter à la fin c'est à dire le total sur tous les mois pour un paus donné. sur le total j'ai les bon chiffres, par contre pour les mois sur un des indicateur il me cummule tous, même en mettant l'agregation en automatique. et même en rajoutant dans l'expression for{[Pays];[mois]} Par avance merci |
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Hi,
J'entends par DataItem, un champs d'une requête. Cela s'appelle peut être "donnée élementaire". Pour le principe, je maintiens qu'avec mes messages #7 et #10, tu as la base et cela doit tourner. J'ai vérifié et j'ai appliqué un principe équivalent dans un rapport contenant des crosstabs assez complexes; j'avais placé la variable au niveau de "Crosstab Fact Cells" dans la crosstab. Maintenant, je pense aussi que la discussion a un "problème": . il y a 3 sujets en 1. Il faudrait splitter, je pense. (je ne suis pas modérateur, cela dit) Le problème de la clause "CASE" (qui doit être résolu, je pense), le problème des bordures, et maintenant ton problème de calcul / total. Je ne pense pas que cela soit très lisible, et ne facilitera pas les éventuels intervenants; je suis sur qu'un des petits anges du forum pourrait nous faire un split de la discussion et on aurait alors 3 sujets, non ? (je me trompe peut être, ceci dit) @+
__________________
Citation:
Mon dernier trip musical Citation:
|
||
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() ben kab Inscription : octobre 2010 Messages : 54 ![]() |
Bonjour à tous,
Je n'est toujours pas résolu le problème du case voila ce que j'ai mis dans l'instruction case when ([champs1] = 'valeur') and ([champs2] = 'valeur') then (valeur) when ([champs1] = '001-QUIKSILVER') and ([champs2] <> 'valeur') then ('valeur') when [champs1] = ''valeur'' then ('valeur') when [champs1] = ''valeur'' then ('valeur') else (999-Others) end Sachant que les valeur sont alphanumériques, mais j'ai une erreur de syntaxe Merci |
|
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Bonjour,
Un bonne chose peut être aurait été de donner le message d'erreur. Sinon, comme j'expliquais ici: http://www.developpez.net/forums/d10...nnee-calculee/, il te faut être sur que tout tes champs utilisés dans ton CASE...WHEN... pour donner un résultat sortent bien des données du même type. Les valeurs doivent tous être de type "string" (ou varchar, etc du même genre), ou bien numérique, mais pas un "mix" des deux. Donc, si besoin, faire un 'cast' dessus (un to_char(valeur) ou autre) Sinon...pour le moment, je ne sais pas.
__________________
Citation:
Mon dernier trip musical Citation:
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com