首页 > 解决方案 > 使用 Mysql 或 PowerBI 和 3 个表(数据集),您如何将工作日添加到销售日期?

问题描述

我在 Mysql 服务器和 PowerBI 中有以下表格(其中任何一个的解决方案都有效)。

销售表

Date sold | Product | item | address
24-11-2018 | socks | 02 | orlando 
26-11-2018 | socks | 02 | mexico df

日历表

Date | isWeekend | isHoliday | isWorkday
24-11-2018 | 1 |  0 | 0
25-11-2018 | 1 |  1 | 0
26-11-2018 | 0 |  0 | 1
27-11-2018 | 0 |  0 | 1

按地点交货的天数表

address | days to deliver in workdays
orlando |  4

我需要在“销售表”中添加一个新列,其中我得到“交付日期”,这是“销售日期”+ 交付天数的总和。现在,我遇到的问题是我不能 /不知道我怎么能设法只添加工作日。

标签: mysqlpowerbipowerbi-desktop

解决方案


我会过滤Calendar表,添加一个运行/累积工作日列,然后将该days to deliver值与正确的累积行匹配。

Date to Deliver =
VAR Dates = FILTER ( 'Calendar', 'Calendar'[Date] > Sales[Date sold] )
VAR CumDays =
    ADDCOLUMNS (
        Dates,
        "CumWorkdays", CALCULATE (
            SUM ( 'Calendar'[isWorkday] ),
            FILTER ( Dates, 'Calendar'[Date] <= EARLIER ( [Date] ) )
        )
    )
VAR DaysToDeliver =
    LOOKUPVALUE (
        DaysToDeliverByLocation[days to deliver in workdays],
        DaysToDeliverByLocation[address], Sales[address]
    )
RETURN
    MINX ( FILTER ( CumDays, [CumWorkdays] = DaysToDeliver ), [Date] )

推荐阅读