我有2张表格如下。
BILLING
AccountId RatingDate Load
1280582 2018-01-04 15:20:13.000 130.000
421947 2018-01-04 11:44:58.000 176.000
1033717 2018-01-04 10:52:23.000 234.000
RATING
AccountId RatingDate RatingMethod
1280582 2018-01-04 15:20:13.000 A
421947 2018-01-04 11:44:58.000 A
1033717 2018-01-04 10:52:23.000 A
我需要在Billing表中创建一个度量来计算Load列的总和。我有SQL查询来执行相同的操作,但我无法使用相同的逻辑创建度量。
SELECT SUM(b.Load)
FROM Billing b
LEFT JOIN Rating r
ON b.AccountId = r.AccountId
AND b.RatingDate = r.RatingDate
WHERE r.RatingMethod = 'A'
有人可以帮助我使用dax公式来创建度量吗?
答案 0 :(得分:0)
有几种方法可以解决这个问题,包括
在查询编辑器中执行左连接。
创建桥接表或唯一索引列以关联两个表。
使用LOOKUPVALUE
函数编写度量。
如果您正在做其他一些事情,那么您可能会考虑选项#1或#2,但对于这个特定的衡量标准,我会向您展示#3。< / p>
LoadSum = CALCULATE(SUM(Billing[Load]),
FILTER(Billing,
LOOKUPVALUE(Rating[RatingMethod],
Rating[AccountID], Billing[AccountID],
Rating[RatingDate], Billing[RatingDate])
= "A"))
上述[Load]
过滤了[RatingMethod] = "A"
表中Rating
的行(并且在ID和日期列上匹配)之后的总和。
对于#1,选择Rating
查询,然后单击合并查询(主页选项卡)。
选择要加入的列(在两者上按Ctrl +单击相同的顺序)。保持默认的Left Outer Join并点击OK。
一旦他们合并,您就会有一个名为Billing
的新列。点击列右上角的展开图标,然后选择要展开的列(仅选择Load
)。
扩展后,您的表格应如下所示:
RATING
AccountId RatingDate RatingMethod Load
1280582 2018-01-04 15:20:13 A 130
421947 2018-01-04 11:44:58 A 176
1033717 2018-01-04 10:52:23 A 234