我有两个表TMain和TZone,它们之间的关系是ST1 vs GeoKey,以及ST2 vs Geokey
我想编写DAX语法来获取结果,如下面的SQL查询所示
SELECT
SUM( case when rou_1st.GeoCode = 'N'
then ISNull(tm.Data1, 0)
else 0 end + case when rou_2nd.GeoCode = 'N'
then ISNull(tm.Data2, 0)
else 0 end ) As N,
SUM( case when rou_1st.GeoCode = 'I'
then ISNull(tm.Data1, 0)
else 0 end + case when rou_2nd.GeoCode = 'I'
then ISNull(tm.Data2, 0)
else 0 end ) As I
FROM TMain tm left join TZone rou_1st ON tm.ST1 = rou_1st.GeoKey left join TZone rou_2nd ON tm.ST2 = rou_2nd.GeoKey
我对DAX语法非常陌生,因此刚开始学习曲线,这就是为什么我需要该小组的一些帮助的原因。
此致
Veasna
答案 0 :(得分:0)
好吧,由于查询已离开联接,因此在Power Bi中,您可以创建将作为联接在Power Bi中工作的关系 将两个表都添加到Power Bi中 表1-域名 表2-TZone 创建一个新表(为此进行建模,请单击新表并写入dax)Tzone 2nd = TZone:-这将创建TZone的副本
现在在关系部分中,在ST1列和Geokey的Tmain和Tzone之间创建关系,并在ST2和Geokey列的tmain和tzone 2nd之间创建另一个关系
现在使用dax在Tmain中创建两列
地理编码=相关(Tzone [GoeCode]) Geocode secound = RELATED(Tzone1 [GoeCode])
这会将GoeCode的相关值带到Tmain,然后使用以下dax查询创建新列
第一手-
N = if(Tmain [Geocode] =“ N”,if(ISBLANK(Tmain [Data1]),0,Tmain [Data1]))+ if(Tmain [Geocode secound] =“ N”,if(ISBLANK (Tmain [Data2]),0,Tmain [Data2]))
对于秒数- I = if(Tmain [Geocode] =“ I”,if(ISBLANK(Tmain [Data1]),0,Tmain [Data1]))+ if(Tmain [Geocode secound] =“ I”,if(ISBLANK(Tmain [ Data2]),0,Tmain [Data2]))
在新的度量中添加由这些列生成的值