Club Power BI

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.
  • 1.  Multiples ensembles actifs de relations

    Posted 14 days ago

    Bonjour,

    Je travaille sur différentes données et souhaite les mettre en relation. Pour illustrer mes propos voici un bref récapitulatif :

    Une table Employé :

    Employé
    ID_Employé NOM_Employé Prénom_Employé ID_Agence
    1 DELACROIX Eugène 1
    2 DALI Salvador 1
    3 RENOIR Auguste 2
    4 PICASSO Pablo 3

    Une table Société :

    Société
    ID_Société NOM_Société ID_Agence ID_Responsable
    1 Cubisme 1 3
    2 Romantisme 1 1
    3 Surréalisme 3 2
    4 Expressionnisme 1 2
    5 Impressionnisme 4 3

    Une table Agence :

    Agence
    ID_Agence Ville_Agence
    1 Paris
    2 Marseille
    3 Nantes
    4 Montpellier

    Un employé est rattaché à une agence.
    Une société est sous la responsabilité d'un employé.
    Une société est rattachée à une agence (pas forcément la même que celle de son responsable).

    J'ai donc trois relations formant une "boucle".

    1-n entre Employé E et Agence A sur E.ID_Agence = A.ID_Agence
    1-n entre Employé E et Société S sur E.ID_Employé = S.ID_Responsable
    1-n entre Agence A et Société S sur A.ID_Agence = S.ID_Agence

    Dans mon modèle de relations, les relation entre Employé et Agence, ainsi que celle entre Employé et Société sont actives mais la dernière ne peut pas l'être.
    Ainsi, si je souhaite récupérer l'agence rattachée à une société, j'obtiendrai l'agence du responsable de la société en question.

    Je voulais donc savoir comment contourner ce problème.
    La seule solution que j'envisage serait d'effectuer une fusion de requête, et donc de copier la table Agence dans la table Société, en prenant soin d'effectuer une jointure via l'ID_Agence. Cependant je n'en suis pas satisfait car les tables avec lesquelles je traite sont beaucoup plus lourdes et contiennent bien plus de colonnes. De plus, ce problème n'apparaît pas une fois unique mais plusieurs fois. Je ne voudrais donc pas dupliquer des tables si cela est possible.

    Merci,
    Clément



    ------------------------------
    Clément
    ------------------------------


  • 2.  RE: Multiples ensembles actifs de relations

    Bronze Contributor
    Posted 13 days ago

    Une voie à explorer pourrait consister à mettre une relation inactive (ex: Employé[ID_Emplyé] * -> 1 Société[ID_Responsable], puis activer la relation dans une mesure avec la fonction DAX USERELATIONSHIP.


    Exemple pour avoir la combinaison Responsable/Agence Société/Société :

    Nbre de Société par Emp = CALCULATE(
        COUNTROWS('Société'),
        USERELATIONSHIP('Employé'[ID_Employé],'Société'[ID_Responsable])
    )



    ------------------------------
    Bertrand d'Arbonneau
    ------------------------------



  • 3.  RE: Multiples ensembles actifs de relations

    Posted 13 days ago

    Merci pour cette réponse, toutefois, elle ne me convient pas tout à fait.
    Je ne souhaite pas obtenir le nombre de sociétés qui sont rattachées à un Employé mais bien leurs libellés.
    J'ai donc modifié votre proposition comme suit :

    Société de Ressource = CALCULATE(
    SELECTCOLUMNS('Société',"MaColonne",'Société'[ID_Société]),
    USERELATIONSHIP('Employé'[ID_Employé],'Société'[ID_Responsable])
    )
    Cela ne fonctionne pas car plusieurs valeurs sont retournées au lieu d'une unique.
    M'y suis-je mal pris ?

    Merci,


    ------------------------------
    Clément Mesnil
    ------------------------------