我有两(2)张桌子
表名:X
ID Name ValidFrom Property
A-----Test1-----01.01.2010---------30
A-----Test1-----01.01.2015---------60
B-----Test1-----01.01.1900---------30
B-----Test2-----01.01.2018---------60
表名:Y
ID Date
A---01.01.2010
A---01.02.2010
A---01.03.2015
A---01.04.2015
理想情况下,我想将计算所得的列添加到表Y 中,该表从表X 查找ID和日期以及ID和ValidFrom。在此示例中,表X中的行#1将是所有日期> = 01.01.2010和日期<01.01.2015的返回数据行。结果是这样的:
表名:Y (新)
ID Date Name Property
A---01.01.2010----Test1------30
A---01.02.2010----Test1------30
A---01.03.2015----Test1------60
A---01.04.2015----Test1------60
任何帮助将不胜感激
答案 0 :(得分:1)
目前尚不清楚Name
列是如何生成的,但是这是在表Property
中具有Name
列之后如何获取Y
列的方法:>
Property =
VAR LastValid =
CALCULATE (
MAX ( X[ValidFrom] ),
FILTER (
ALL ( X[ValidFrom] ),
X[ValidFrom] <= EARLIER ( Y[Date] )
)
)
RETURN
LOOKUPVALUE (
X[Property],
X[ID], Y[ID],
X[Name], Y[Name],
X[ValidFrom], LastValid
)
LastValid
变量查找小于或等于当前行中日期的最新日期。然后,将其与ID
和Name
一起使用,以从表Property
中查找X
。
答案 1 :(得分:0)
考虑到您所引用的最后一个公式并将LOOKUPVALUE应用于ID和ValidFrom,我成功尝试了下一种方法:
名称= VAR LastValid = CALCULATE(MAX(X [ValidFrom]); 过滤器( ALL(X [ValidFrom]); X [ValidFrom] <=早(Y [Date]) ) ) 返回 LOOKUPVALUE( X [名称]; X [ID]; Y [ID]; X [ValidFrom];最后验证 )