Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi Power BI/Power Query[M code]-根据源添加自定义列_Powerbi_Powerquery_Navision_M - Fatal编程技术网

Powerbi Power BI/Power Query[M code]-根据源添加自定义列

Powerbi Power BI/Power Query[M code]-根据源添加自定义列,powerbi,powerquery,navision,m,Powerbi,Powerquery,Navision,M,使用上述代码从Microsoft Dynamics Navision中的多个实体(公司)中提取数据(以公司1为例) 尝试添加具有基于公司名称的唯一标识符的自定义列 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

使用上述代码从Microsoft Dynamics Navision中的多个实体(公司)中提取数据(以公司1为例)

尝试添加具有基于公司名称的唯一标识符的自定义列

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代码实现这一点


非常感谢。

像这样的怎么样

G_L Account number     G_L Account name   Amount   Company
10010                  Revenue            100      Company1
22000                  Rent               50       Company1

这样你

我无法测试这一点,但我认为它可能适合你:

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",[...])
我将导航步骤(#“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。

因此,您的数据库中有多个表要加载并附加一个列来标记源?Hi@alexson Correct,密钥是唯一标识符,它将根据源动态变化。是否可以从源代码中提取字符串?模式将是相同的,在Item=之后和$G_L条目之前,谢谢
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"