PowerApps 合并相关表

PowerApps merge related tables

我是 PowerApps 的新手,在开始 PowerApps 项目(涉及关系数据库)之前正在探索关系数据库。我正在尝试对两个实体(饮料和人类)进行简单连接,其中饮料有一个与 "human" 的主 ID 相关的 BuyerID 字段。 所以我试过了 ForAll(Filter(drink, (name = "Americano") And (drink.BuyerID = human.PrimaryId) ), Collect(AmericanoDrinkers, {FirstName: human.firstName, LastName: human.lastName})) 获取带美式咖啡的人的集合,但我收到 Invalid argument type 错误 drink.BuyerID = human.PrimaryId。 有任何想法吗?我试过将 = 更改为 in,并将 drink.BuyerID 更改为 drink[@BuyerID]。请注意,drink.BuyerID 数据类型是 "Lookup" 而 human.PrimaryId 是整数,所以我会因为不同的类型而收到此错误吗?此外,我确定数据没有任何问题,因为在 excel 中编辑饮料实体时,powerapps 插件会在选择 BuyerID 时显示相关人员。

理论上你想做的是:

ClearCollect(AmericanoDrinkers,
    Filter(human,
        PrimaryId in Filter(drink, name="Americano").BuyerID
            )
        )
    )

在实践中,根据您的数据源是用于饮料 and/or 人类,您可能 运行 会遇到委派问题。 如果可以避免,我不建议使用 ForAll,因为你冒着为每一行调用数据源的风险,而像我建议的那样的公式将被并行处理(委托允许)。

如果以上的效果不理想,你也可以试试这个两步法:

ClearCollect(FilteredIds, GroupBy(Filter(drink, name="Americano"), "BuyerID", "AllRows"));
ClearCollect(AmericanoDrinkers, Filter(human, PrimaryId in FilteredIds.BuyerID))

问题只是设置问题,我刚刚在饮料实体中创建了一个新字段 (BuyerID2) 并将其设置为数字值,而不是像 BuyerID 那样进行查找,所有 3 个(我的初始字段和两个 Meneghino 提供)解决方案工作正常(尽管我不得不将 drink.BuyerID = human.PrimaryId 更改为 BuyerID2 in human.PrimaryId)。

您可以尝试在图库中使用图库.... 我在画廊中使用过画廊很多次,使用起来有点混乱,但看起来很合乎逻辑,对我来说效果很好。