IF ([Cost Type]="REVISED") THEN (IFNULL([Gis Labour],0)+IFNULL([Gis Im And E Labour],0)+IFNULL([Gis Im And E Non Labour],0)+IFNULL([OTHER_DIVISIONS_EXPENSE],0))
ELSEIF ([Cost Type]="ORIGINAL") THEN (IFNULL([Gis Labour],0)+IFNULL([Gis Im And E Labour],0)+IFNULL([Gis Im And E Non Labour],0)+IFNULL([OTHER_DIVISIONS_EXPENSE],0))
END
使用上述代码从Microsoft Dynamics Navision中的多个实体(公司)提取数据(以Company1为例)。
尝试根据公司名称添加具有唯一标识符的自定义列。
let
Source = Sql.Databases("xx.x.x.x"),
zzz_LIVE = Source{[Name="NAVzzz_LIVE"]}[Data],
#"COMPANY1$G_L Entry" = NAVzzzLIVE{[Schema="dbo",Item="COMPANY1$G_L Entry"]}[Data],
是否可以通过M代码实现这一目标?
非常感谢。
答案 0 :(得分:1)
这样的事情怎么样?
let
Source = Sql.Databases("xx.x.x.x"),
zzz_LIVE = Source{[Name="NAVzzz_LIVE"]}[Data],
Name1 = "Company1",
Name2 = "Company2",
[...]
#"COMPANY1" = NAVzzzLIVE{[Schema="dbo",Item=Name1&"$G_L Entry"]}[Data],
#"Added Custom1" = Table.AddColumn(#"COMPANY1", "Company", each Name1),
#"COMPANY2" = NAVzzzLIVE{[Schema="dbo",Item=Name2&"$G_L Entry"]}[Data],
#"Added Custom2" = Table.AddColumn(#"COMPANY2", "Company", each Name2),
[...]
Table.Combine(#"Added Custom1",#"Added Custom2",[...])
那样你
答案 1 :(得分:0)
我无法对此进行测试,但我认为它可能适合您:
let
Source = Sql.Databases("xx.x.x.x"),
zzz_LIVE = Source{[Name="NAVzzz_LIVE"]}[Data],
#"COMPANY1$G_L EntrySrc" = NAVzzzLIVE{[Schema="dbo",Item="COMPANY1$G_L Entry"]},
#"COMPANY1$G_L Entry" = #"COMPANY1$G_L EntrySrc"[Data],
#"Added Custom" = Table.AddColumn(#"COMPANY1$G_L Entry", "Company",
each Record.Field(#"COMPANY1$G_L EntrySrc", "Item"))
in
#"Added Custom"
我将导航步骤(#" COMPANY1 $ G_L Entry")分成两部分,以便我可以引用其记录。否则,[数据]会妨碍。
如果我更正,它会将COMPANY1 $ G_L条目返回到您的新列。您可以将Record.Field(#"COMPANY1$G_L EntrySrc", "Item")
更改为Text.Before(Record.Field(#"COMPANY1$G_L EntrySrc", "Item"), "$G_L")
,只返回COMPANY1。