我有两(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和ValidFrom查找ID和日期。在此示例中,表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
任何帮助将不胜感激
目前尚不清楚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
。
考虑到最后一个公式并将LOOKUPVALUE应用于ID和ValidFrom,我尝试了下一个方法:
Name = VAR LastValid = CALCULATE(MAX(X [ValidFrom]); FILTER(ALL(X [ValidFrom]); X [ValidFrom] <= EARLIER(Y [Date])))RETURN LOOKUPVALUE(X [Name]; X [ ID]; Y [ID]; X [ValidFrom]; LastValid)