Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 17h06   #1
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Par défaut Sélectionner valeur minimale associée à une dimension ?

Bonjour,

J'avais posté un précédent message que j'ai délesté, mon explication étant trop alambiquée

En fait j'ai un tableau constitué à partir d'un fournisseur :

NumClient (dimension)
Compte (dimension)
Montant (dimension)

Avec comme résultats :

Mr_Dupont Compte1 800
Mr_Dupont Compte2 500
Mr_Dupont Compte3 700
Mr_Martin Compte1 100
Mr_Martin Compte2 300
Mr_Martin Compte3 900

Je souhaite obtenir pour chaque client le compte sur lequel la somme est la moins importante :

Mr_Dupont Compte2 500
Mr_Martin Compte1 100

J'ai tenté sans succès de manipuler la fonction Min.() associée à Dans (). En fait je peux sélectionner la valeur minimale pour chaque client mais tous les comptes ressortent et pas seulement le compte ayant la plus petite valeur.

Pourriez-vous m'aider dans cette problématique ?

Je vous remercie,

C. Tobini
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 17h48   #2
Membre éclairé
 
Inscription : juillet 2007
Messages : 395
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 395
Points : 379
Points : 379
En fait, tu ne cherche pas le minimum par compte mais le compte où il y a le minimum ... Donc il s'agit d'un palmarès inversé (ou décroissant, c'est pareil), à une occurence (pour le ramener que le plus petit et pas les x plus petits).

En triturant la fonction palmarès, tu devrais plus facilement trouver ce que tu cherches.
pour rappel, la fonction palmarès est représentée dans la barre d'outil par un podium et se nomme "appliquer un classement". elle ne peut s'appliquer que sur une dimension (il faudra peut être créer une variable dimension regroupant le nom du propriétaire du compte et le numéro de compte).
bch97 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 16h55   #3
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Bonjour et merci de la réponse,

Je suis arrivé à constituer le tableau voulu avec le palmarès. En revanche je n'ai pas associé le num client au num compte mais j'ai fait une rupture sur les num client, ce qui a fonctionné

Je me suis rendu compte que comme je dois intégrer ce classement à un tableau constitué à partir d'un autre fournisseur je ne pourrais pas utiliser le palmarès, je devrais faire le classement directement dans mon fournisseur.

Mon soucis est que si Montant est de type Min et si j'intègre les 2 dimensions, mon fournisseur renvoie le SQL suivant :

Code :
1
2
SELECT NumClient, NumCompte, MIN(Montant) FROM MaTable 
GROUP BY NumCLient, NumCompte
Ce qui a pour effet de chercher le montant minimum pour chaque compte et non le compte ayant le plus petit montant pour chaque client.

Le SQL que je recherche est :

Code :
1
2
3
4
SELECT NumClient, NumCompte, Montant FROM MaTable 
WHERE Montant IN
(SELECT MIN(Montant) FROM MaTable
GROUP BY NumClient)
Aurais-tu une idée pour arriver au résultat souhaité dans le fournisseur ?

Je suis évidemment ouvert à tout solution Le pire des cas que j'envisage est de créer une table dérivée dans l'univers.

Merci et bonne fin de journée,

C. Tobini
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h31.


 
 
 
 
Partenaires

Hébergement Web