DAX: Как сложить значения между двумя датами из несвязанной таблицы? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть три таблицы:

Supplier
    SupplierID

SupplierRebate
    SupplierID (Is a key to Supplier[SupplierID]
    DateStart
    DateEnd
    TurnoverMin
    RebateRate

ProductBought
    SupplierID (Is a key to supplier[SupplierID]
    TotalPrice
    DateInvoice

ProductBought и SupplierRebate связаны с Поставщиком. Я пытаюсь составить сумму общей суммы за каждую скидку. Я хочу, чтобы для каждой скидки для поставщика, работающего в сети, суммировалась общая цена, когда DateInvoice находится между DateStart и DateEnd.

Это выглядело так просто, и я потратил часы, пытаясь понять, но я просто не могу представить DAX в свой мозг. Я пробовал Sum, SUMX, Filters, Calculate и несколько других. Я просто не могу понять, Дакс.

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Ниже не требуется двунаправленных связей, которых следует избегать во всем, что я когда-либо читал / смотрел / слышал о DAX, любой ценой.

SUMMARIZE ( SupplierRebate, Supplier[SupplierID], SupplierRebate[DateStart], SupplierRebate[DateEnd], SupplierRebate[TurnoverMin], SupplierRebate[RebateRate], "Total Purchased", CALCULATE ( SUM ( ProductBought[TotalPrice] ), FILTER ( ProductBought, ProductBought[DateInvoice] <= MAX ( SupplierRebate[DateEnd] ) && ProductBought[DateInvoice] >= MAX ( SupplierRebate[DateStart] ) ) ) )

0 голосов
/ 07 апреля 2020

Я думаю, что если вы создадите двусторонние отношения между SupplierID <-> SupplierRebate и SupplierID <-> ProductBought и создадите однорядную карту для итоговой цены с DateInvoice в качестве слайсера, это должно сделать свое дело. DAX тогда не потребуется.

...