Lier deux tables par un calcul (cardinalités plusieurs à plusieurs)

Accueil – Le CFO masqué Forums Power BI Lier deux tables par un calcul (cardinalités plusieurs à plusieurs)

2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Articles
  • #68480
    leah
    Participant

    Bonjour,
    Cf en image le modèle sur lequel je travaille actuellement.

    J’étudie les préparations et livraisons d’un magasin. Je souhaite calculer l’écart entre la date de préparation d’une commande et la date de sa livraison. Je suis capable de décrire les calculs à faire mais ne sait pas comment les implémenter dans power BI

    Dans mon modèle :
    – Une livraison peut correspondre à plusieurs préparations mais une préparation ne peut correspondre qu’à une livraison.
    livraison_reelle_semaine : chaque ligne décrit une livraison effectivement réalisée ;
    preparation_reelle_semaine : chaque ligne décrit une préparation effectivement réalisée ;
    – il n’y a pas de clef unique entre ces deux tables DONC actuellement il n’y a pas de liaison explicite entre une préparation et sa livraison.
    id_livraison permet d’identifier le service livré. Il apparait donc plusieurs fois dans les deux tables.

    Je souhaite calculer la différence entre la date de préparation et la date de livraison. Pour cela, j’ai besoin de lier chaque préparation à sa livraison. Voici les étapes :

    L = [] # liste des dates de livraison potentielles liée à la préparation étudiée
    i = 0
    FOR x in  ‘preparation_reelle_semaine‘[id_livraison]
    	i+=1
    	FOR y in ‘livraison_reelle_semaine‘[id_livraison]
    		IF y =x 
    			IF ‘livraison_reelle_semaine‘ [date_livraison]<= ‘preparation_reelle_semaine‘ [date_preparation]
    				THEN L[i] += [‘livraison_reelle_semaine‘ [date_livraison]
    			ENDIF
    		ENDIF
    	ENDFOR
    ENDFOR

    La plus petite date est la date associée à la préparation.

    Pouvez-vous m’aider à implémenter cet algorithme dans power BI ?
    J’ai pensé à fusionner les requêtes, utiliser la fonction FILTER, les relations plusieurs à plusieurs… Mais je n’ai pas encore réussi !
    Peut-être serait-il intéressant de dupliquer la table sur les préparation et de calculer dans chaque ligne (donc pour chaque préparation) la date de livraison liée grâce à l’algorithme indiqué comme suit. Comment faire ?

    Un grand merci d’avance,
    Leah

    • Ce sujet a été modifié le il y a 5 mois et 1 semaine par leah.
    Attachments:
    You must be logged in to view attached files.
    #70761
    Sophie Marchand
    Participant

    Bonjour,

    Comme vous travaillez avec des dates, d’abord et avant tout, vous aurez besoin d’une table de dates… c’est la base. Vos deux tables de faits seront liées à cette table de dates.

    Pour la suite, je n’ai pas étudié votre problématique en profondeur, mais vous aurez peut-être besoin de la fonction USERELATIONSHIP comme dans l’exemple suivant https://www.lecfomasque.com/dax-lutile-fonction-userelationship/ si vous devez utiliser deux champs de dates d’une même table de faits pour calculer une mesure.

    Je vous laisse ré-essayer avec ces informations. Si ça ne fonctionne toujours pas, revenez sur le forum et soumettez votre fichier avec votre tentative. Fournissez également le résultat erroné et le résultat attendu.

    Merci.

    Sophie

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.