|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Stéphane Inscription : janvier 2011 Messages : 1 ![]() |
Bonsoir,
Je me permets de solliciter votre bienveillance pour calculer le nombre de valeurs distinctes à partir de deux tables jointes. 1°/ La structure des tables est fournie en pièce jointe. 2°/ En fait, je dispose de deux tables jointes selon deux agrégats. Je cherche à compter le nombre d'occurence distincte de trois champs désignés sous les termes OPERATING_UNIT, FUND_CODE, DEPTID. Au champ FUND_CODE est associé plusieurs types possibles par l'intermédiaire du champ S1_TYP_FUND_CODE (la liste possible est : SUP, OFF, etc...). 3°/ L'objectif est de trouver le résultat suivant : YEAR CODE_BU_GL CODE_DIVISION LIBELLE_DIVISION NB_DIVISION NB_RG NB_RG_OFF NB_DPT Normalement, le nombre de RG (dont le total est NB_RG) doit se décomposer en la somme des variables NB_RG_OFF, etc... mais cela ne fonctionne pas car je dois faire une erreur de programmation. J'ai consulté le forum et constaté qu'il est recommandé d'utiliser la fonctionnalité CASE OF mais je n'arrive pas à conceptualiser la notion de sous-requête pour décomposer le total de champs distincts en sous-totaux. 4°/ Ci-dessous, la requête que j'ai programmée (je n'ai pas indiqué toute la liste des sous-totaux que je recherche par simplification). Elle fonctionne sans le calcul des sous-totaux cependant : Citation:
L'erreur provient certainement de la ligne de programmation en "mauve". Si vous pouviez m'aider, je tourne en "rond" malheureusement. Je vous serai reconnaissant de votre aide, grâce aux FAQ, je vois bien que l'orientation serait l'utilisation d'un CASE... mais je sèche. En vous remerciant encore, Stéphane. |
|
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Je n'ai pas regardé en détail ton problème, ni ta description de probleme (mon lit m'appelle). J'ai vu quelques bricoles A/Dans la ligne en mauve il y a des quotes qui ne sont pas droites ’ et pas ', erreur de copier coller ou vrai erreur? B/Dans la fameuse ligne il n'y a rien qui la lie à la ligne courante, est-ce normal, elle sera la même pour toutes les lignes C/Tu as utilisé une jointure externe, attention cela peut engendrer des bizarrerie avec les fonctions d'agregation. A+ Soazig |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Inscription : août 2008 Messages : 835 ![]() |
Bonjour,
Essayez en remplaçant votre ligne mauve par : Code :
COUNT(DISTINCT CASE WHEN A.S1_TYP_FUND_CODE='SUP' THEN A.FUND_CODE END) AS NB_RG_OFF, |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com