【问题标题】:Filemaker summarize related field ifFilemaker 总结相关领域,如果
【发布时间】:2015-02-10 11:23:19
【问题描述】:

我有一个 FM13 数据库,其中有一个表“机器”及其相关的表“消费”与 ID 相连。 我的布局显示了机器数据和带有相关消费条目的门户。 现在我想将“fuelType”为“diesel”且“year”为“2015”的所有相关条目的字段“amount”汇总到机器表中的一个计算字段中。

谁能告诉我怎么做?

谢谢 丹

【问题讨论】:

    标签: filemaker portal summary


    【解决方案1】:

    除了 Michael 建议的方式外,FM13 还引入了ExecuteSQL 命令,可以在计算字段中使用。计算如下所示:

    ExecuteSQL (
        "SELECT SUM(amount)" & ¶ &
        "FROM consumption" & ¶ &
        "WHERE FuelType = 'diesel' AND \"Year\" = 2015" ;
        "" ; ""
    )
    

    【讨论】:

    • 感谢你们所有人!我设法解决了它。我创建了一个切换到消耗布局的脚本,并搜索了提到的标准并总结了金额。可能是 FM-newbee 的方式。我一定会检查 SQL 命令以备将来计算。
    【解决方案2】:

    基于连接字段的两个表中的计算字段创建另一个关系:

    id_fueltype_year: 12345_diesel_2015

    然后您可以在包含 Sum(newrelation: amount) 的机器中创建一个计算字段

    如果您在 calc 字段机器表中对燃料类型进行硬编码,则结果将始终是指定的燃料类型(例如柴油)。因此,您需要为每种字段类型创建多个字段。或者您可以创建一个燃料类型字段,当您更改它时,汇总计算字段将在选择时更新。

    【讨论】:

    • 你知道我们从 v.7 开始就有了多谓词关系吗?
    【解决方案3】:

    如果这只是为了显示,您可以简单地基于现有关系创建一个单行门户并对其进行过滤以仅显示 = 的记录

    Consumption::FuelType = "diesel" and Consumption::Year = 2015
    

    或(最好是恕我直言)=

    Consumption::FuelType = Machines::gFuelType 
    and 
    Consumption::Year = Machines::gYear
    

    Machines::gFuelTypeMachines::gYear 是全局字段,您可以在其中选择任何类型/年份进行汇总。

    在过滤后的门户中放置一个定义为(在消耗表中)为 [Amount] 总计的汇总字段。

    如果您需要将结果作为数据进行进一步处理,那么您需要添加一个专用关系(使用消耗表的另一个实例):

    Machines::MachineID = Consumption 2::MachineID
    AND
    Machines::gFuelType = Consumption 2::FuelType
    AND
    Machines::gYear = Consumption 2::Year
    

    并使用Sum ( Consumption 2::Amount )总结相关条目。

    【讨论】: