使用 Mysql 或 PowerBI 和 3 个表(数据集),如何将工作日添加到销售日期?
Using Mysql or PowerBI and 3 tables(datasets), how do you add working days to date sold?
我在 Mysql 服务器和 PowerBI 中有以下 tables(适用于其中任何一个的解决方案)。
销售额Table
Date sold | Product | item | address
24-11-2018 | socks | 02 | orlando
26-11-2018 | socks | 02 | mexico df
日历table
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
按地点交货的天数table
address | days to deliver in workdays
orlando | 4
我需要在 "Sales Table" 中添加一个新列,其中我得到 "Date to Deliver",这是 "Date Sold" + 交付天数的总和”。现在,我遇到的问题是我不能/不知道我怎么能设法只添加工作日。
我会筛选 Calendar
table,添加 running/cumulative 工作日列,然后将 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] )
我在 Mysql 服务器和 PowerBI 中有以下 tables(适用于其中任何一个的解决方案)。
销售额Table
Date sold | Product | item | address
24-11-2018 | socks | 02 | orlando
26-11-2018 | socks | 02 | mexico df
日历table
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
按地点交货的天数table
address | days to deliver in workdays
orlando | 4
我需要在 "Sales Table" 中添加一个新列,其中我得到 "Date to Deliver",这是 "Date Sold" + 交付天数的总和”。现在,我遇到的问题是我不能/不知道我怎么能设法只添加工作日。
我会筛选 Calendar
table,添加 running/cumulative 工作日列,然后将 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] )