Bonjour à tous,
J'ai fait mon enquête et finalement c'est la dimension promo achat qui cause le problème.
De plus, l'extraction de la veille fonctionne.
Je vous partage la requête
let
Source = Table.NestedJoin(TarifsAchatJour, {"ID_PRODUIT", "Date tarif", "ID_FOURNISSEUR"}, TarifsPromoJour, {"ID_PRODUIT", "Date tarif", "ID_FOURNISSEUR"}, "TarifsPromo", JoinKind.LeftOuter),
#"TarifsPromo développé" = Table.ExpandTableColumn(Source, "TarifsPromo", {"ID_FOURNISSEUR", "ID_PRODUIT", "Taux promo achat", "PRIXNET_PROMO", "Date tarif"}, {"ID_FOURNISSEUR.1", "ID_PRODUIT.1", "TAUX_PROMO", "PRIXNET_PROMO", "Date tarif.1"}),
/*je fais une fusion sur deux tables en conservant toutes lavaleurs à partir des 2 tables, il faut donc que je fusionne les codes produits, dates tarifs, et id_fournisseur pour ne pas avoir de valeur null*/
AjoutFusionCodeProduit = Table.AddColumn(#"TarifsPromo développé", "Fusion ID_PRODUIT", each if [ID_PRODUIT] = null then [ID_PRODUIT.1] else [ID_PRODUIT]),
AjoutFusionDateTarif = Table.AddColumn(AjoutFusionCodeProduit, "Fusion Date tarif", each if [Date tarif] = null then [Date tarif.1] else [Date tarif]),
AjoutFusionCodeFournisseur = Table.AddColumn(AjoutFusionDateTarif, "Fusion ID_FOURNISSEUR", each if [ID_FOURNISSEUR] = null then [ID_FOURNISSEUR.1] else [ID_FOURNISSEUR]),
AjoutPromo = Table.AddColumn(AjoutFusionCodeFournisseur, "Promo", each if [TAUX_PROMO] <> 0 then [Prix] * (1-[TAUX_PROMO]) else if [PRIXNET_PROMO] <> 0 then [PRIXNET_PROMO] else 0),
PromoRemplaceNullparZero = Table.ReplaceValue(AjoutPromo,null,0,Replacer.ReplaceValue,{"Promo"}),
ColSupp = Table.RemoveColumns(PromoRemplaceNullparZero,{"ID_PRODUIT", "ID_PRODUIT.1", "Date tarif.1", "Date tarif", "ID_FOURNISSEUR.1", "ID_FOURNISSEUR", "PRIXNET_PROMO", "TAUX_PROMO"}),
ColRenom = Table.RenameColumns(ColSupp,{{"Fusion ID_PRODUIT", "ID_PRODUIT"}, {"Fusion Date tarif", "Date tarif"}, {"Fusion ID_FOURNISSEUR", "ID_FOURNISSEUR"}, {"Prix", "Prix base"}}),
/*Calcul de NbJoursMois, le nb de jours dans le mois */
AjoutFinMois = Table.AddColumn(ColRenom, "FinMois", each Date.EndOfMonth([Date tarif])),
AjoutDébutMois = Table.AddColumn(AjoutFinMois, "DébutMois", each Date.StartOfMonth([Date tarif])),
AjoutNbJoursPromo = Table.AddColumn(AjoutDébutMois, "NbJoursPromo", each if [Promo] <> 0 then 1 else 0),
/* Sur certaines lignes, prix promo >= achat, il faut les enlever, ce ne sont pas des vrais promos */
AjoutDiffPromoBase = Table.AddColumn(AjoutNbJoursPromo, "DifférencePromoPrixBase", each [Promo]-[Prix base]),
FiltreDiff0 = Table.SelectRows(AjoutDiffPromoBase, each ([DifférencePromoPrixBase] < 0)),
#"Lignes filtrées" = Table.SelectRows(FiltreDiff0, each ([Promo] <> 0))
in
#"Lignes filtrées"
L'erreur apparaît lors de l'étape "FiltreDiff0" (4eme ligne en partant de la fin)
Merci pour votre aide