我创建了一个查询,我希望能够根据另一个表中的列进行过滤,如何实现这一点,因为它似乎不起作用?
let
Source = Salesforce.Data("https://login.salesforce.com/", [CreateNavigationProperties=true]),
MyCustomObject = Source{[Name="MyCustomObject "]}[Data],
accnt = Source{[Name="Account"]}[Data],
accntId = Table.SelectColumns(accnt, {"Id"}),
accntList = Table.ToList(accntId, Combiner.CombineTextByDelimiter(",")),
#"Filtered" = Table.SelectRows(MyCustomObject, each List.Contains(accntList, [AccountId__c]))
in
#"Filtered"
我也尝试使用List.Contains(accnt[Id])
但没有欢乐
如果我将其更改为each (AccountId__c = "Some Value Here")
,则无法使用列表。
由于
答案 0 :(得分:0)
每列中的ID是唯一的吗?如果是这样,您可以使用内部联接种类进行合并,如果将MyCustomObject
和accnt
放入单独的查询中,则可以通过UI(在主页功能区选项卡中)进行合并。
如果ID不是唯一的,您仍然可以执行合并,但是您必须执行其中一个外部联接种类,展开新列,然后使用空ID过滤掉该列。
答案 1 :(得分:0)
似乎问题在于:
accntList = Table.ToList(accntId, Combiner.CombineTextByDelimiter(",")),
我用这行来转换列表中的字段:
accntList = List.Distinct(accnt[Id]),
代码如下:
let
Source = Salesforce.Data("https://login.salesforce.com/", [CreateNavigationProperties=true]),
MyCustomObject = Source{[Name="MyCustomObject "]}[Data],
accnt = Source{[Name="Account"]}[Data],
accntList = List.Distinct(accnt[Id]),
#"Filtered" = Table.SelectRows(MyCustomObject, each List.Contains(accntList, [AccountId__c]))
in
#"Filtered"