IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSRS Discussion :

[SSRS][2K5]:Transformer des valeurs dans un tableau en pourcentage


Sujet :

SSRS

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut [SSRS][2K5]:Transformer des valeurs dans un tableau en pourcentage
    Bonjour à toutes et à tous,
    Je dois construire deux graphiques, le premier donne le nombre d'employés par catégorie et le second (de même allure) indique la même chose mais en pourcentage.
    Voici la requête que j'ai écrite pour obtenir le premier graphique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT     { fn CONCAT(m.libelle_en, CAST(h.Annee AS varchar)) } AS Date, SUM(h.Montant) AS headcount, en.libelle_niveau_1 AS Liben
    FROM         headcount AS h INNER JOIN
                          nomenclature_en AS en ON en.Nomenclature = h.Nomenclature INNER JOIN
                          month_name AS m ON h.Mois = m.Numero
    WHERE     (en.id_niveau_1 IN ('EMP', 'EXT', 'SHRT')) AND (h.Annee = @minYear) AND (h.Mois >= @month) OR
                          (en.id_niveau_1 IN ('EMP', 'EXT', 'SHRT')) AND (h.Annee > @minYear) AND (h.Annee < @maxYear) OR
                          (en.id_niveau_1 IN ('EMP', 'EXT', 'SHRT')) AND (h.Annee = @maxYear) AND (h.Mois <= @month)
    GROUP BY h.Annee, h.Mois, en.libelle_niveau_1, m.libelle_en
    J'ai essayé de partir de cette même requête pour construire un deuxième graphique. Cependant J'ai modifié les propriétés du graphique, sous l'onglet données : j'ai remplacé "=Fields!headcount.Value" par l'instruction suivante :
    =Fields!headcount.Value/Sum(Fields!headcount.Value, "Headcount"). Je cherche en effet à diviser le nombre d'employés par le total que j'ai calculé dans ma requête, cependant j'ai remarqué que Sum(Fields!headcount.Value, "Headcount") ne donne pas le total par mois (ce que je souhaite) mais le total annuel (tous mois confondus).

    J'aimerais également savoir comment afficher le total, en haut de chaque colonne d'un graphique. Je sais que l'on peut afficher via des étiquettes la valeurs de chaque composant.

    J'ignore si je dois intervenir sur ma requête ou sur les paramètres de mise en page, pouvez-vous m'aider s'il vous plaît ? Je vous remercie par avance de l'attention que vous accordez à mon problème.
    Adrien

  2. #2
    Membre expérimenté

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Salut,
    Il faudrait que tu définisse une liste ou tu spécifie le groupe voulu (mois), ensuite soit tu met ton graphe dans le rectangle, soit tu fait un sum (Fields!Champ.Value, NomRectangle)

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Je suis désolé mais je n'ai pas bien compris le conseil que tu me donnes, il faut que je définisse "le groupe voulu", cependant j'ignore comment définir ce groupe. J'essaie, mais je ne m'en sors pas.

  4. #4
    Membre expérimenté

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Ok
    Il faut glisser une zone réctangle dans ta zone de dessin. Ensuite, bouton droit sur cette zone et tu vas dans l'onglet "groupes", tu auras une liste avec la possibilité d'entrer ton groupe. Là, il faut mettre : Fields!taValeur.Value (la valeur avec laquelle tu veux faire ton grouping). Enfin, tu met ton graphe ou tableau à l'interieur et tu auras tes totaux groupés comme tu le veux
    Fait nous signe si tu coince encore

    Bon courage !

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Et en ce qui concerne la valeur sous forme de pourcentage, un clic droit sur la cellule de ton tableau dans laquelle tu veux que la valeur soit sous forme de pourcentage, puis format et dans la case appropriée tu saisis "p".

  6. #6
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Et en ce qui concerne la valeur sous forme de pourcentage, un clic droit sur la cellule de ton tableau dans laquelle tu veux que la valeur soit sous forme de pourcentage, puis format et dans la case appropriée tu saisis "p".
    Ou P1 si tu veux 1 décimal, P2 etc...
    Mais attention tes valeurs doivent être 0.5 pour afficher 50%.
    Alexandre Chemla - Consultant MS BI chez Masao

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut Division de deux colonnes avec l'une d'elles issue d'un calcul
    Bonjour et merci pour ces indications bien précieuses, j'ai écrit entre temps un code qui me permet de calculer un pourcentage à partir de deux colonnes (ce cas est différent du précédent puisque l'une des colonnes est issue d'un calcul : sum()), mais j'ai été confronté au problème de regroupement (group by) qui m'empêche d'obtenir le résultat souhaité.
    Bien sûr vous avez su répondre à mon problème concernant le formatage d'une valeur, mais pourriez-vous également me dire comment faire pour que dans le code ci-dessous je puisse obtenir un pourcentage : pour l'instant tous les résultats obtenus = 1. Cela s'explique par le group by qui oblige à regrouper les résultats par "Nomenclature" et donc la somme et le "Montant" sont alors équivalents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SELECT     { fn CONCAT(m.libelle_en, CAST(h.Annee AS varchar)) } AS Date, en.libelle_niveau_2 AS lib_en,
                              (SELECT     h2.Montant
                                FROM          headcount AS h2 INNER JOIN
                                                       nomenclature_en AS en2 ON en2.Nomenclature = h2.Nomenclature
                                WHERE      (h2.Mois = h.Mois) AND (h2.Annee = h.Annee) AND (en2.id_niveau_1 = en.id_niveau_1) AND (h2.Nomenclature = h.Nomenclature)) 
                          /
                              (SELECT     SUM(h.Montant) AS sum
                                FROM          headcount AS h3 INNER JOIN
                                                       nomenclature_en AS en3 ON en3.Nomenclature = h3.Nomenclature
                                WHERE      (h3.Mois = h.Mois) AND (h3.Annee = h.Annee) AND (en3.id_niveau_1 = en.id_niveau_1) AND (h3.Nomenclature = h.Nomenclature)) 
                          AS div
    FROM         headcount AS h INNER JOIN
                          nomenclature_en AS en ON h.Nomenclature = en.Nomenclature INNER JOIN
                          month_name AS m ON h.Mois = m.Numero
    WHERE     (en.id_niveau_1 = 'DIV') AND (h.Annee = @minYear) AND (h.Mois >= @month) OR
                          (en.id_niveau_1 = 'DIV') AND (h.Annee > @minYear) AND (h.Annee < @maxYear) OR
                          (en.id_niveau_1 = 'DIV') AND (h.Annee = @maxYear) AND (h.Mois <= @month)
    GROUP BY h.Annee, h.Mois, en.libelle_niveau_1, m.libelle_en, en.libelle_niveau_2, h.Nomenclature, en.id_niveau_1
    ORDER BY h.Annee, h.Mois

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/03/2014, 17h33
  2. [WD10] Afficher des valeurs dans un tableau
    Par dj-julio dans le forum WinDev
    Réponses: 4
    Dernier message: 19/03/2014, 11h32
  3. Réponses: 2
    Dernier message: 07/09/2010, 10h49
  4. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo