【问题标题】:FileMaker database design with calculated fields and filtering带有计算字段和过滤的 FileMaker 数据库设计
【发布时间】:2012-08-07 19:22:34
【问题描述】:

我现在正在试用 Filemaker Pro 12,之前没有 FM 经验,但有其他基本的 DB 经验。我遇到的问题是尝试对跨越一对多关系的报告进行过滤查询。这是一个例子;

两张桌子:

Sample_Replicate
    PK
    Sample FK
    other fields

Weights
    Sample_Replicate_FK (linked to PK of Sample_Replicate)
    Weight
    Measurement type (tare, gross, dry, ash)
    Wash type (null or from list of lab assays)

我想创建一个报告,显示:(毛皮)、(干皮)/(毛皮)、(灰皮)/(毛皮)和(干皮)/(总皮重)适用于所有具有非零洗涤类型的干重。

FM 似乎希望我为这些值中的每一个创建列(这是可行的,因为实验室化验列表的变化很小,并且更新数据库是可以接受的,但不是首选)。我尝试将总重量、皮重等添加到 Sample_Replicate 表中,但当我使用计算字段和方法时,它只返回第一条记录(皮重):

tare wt field = Case ( Weights::Measurement type = "Tare"; Weights::Weights )
gross wt field = Case ( Weights::Measurement type = "Gross"; Weights::Weights )
etc...

当我添加条件时,它似乎也失败了:

 and Is Empty(Weights::Wash type )

有人能指出我在这个问题上的正确方向吗?谢谢

编辑: 我遇到了这个:http://www.filemakertoday.com/com/showthread.php/14084-Calculation-based-on-1-to-many-relationship

似乎我可以为权重表上的每个测量和清洗类型组合创建约 15 个计算字段,然后在将这 15 列添加到表中后,在 sample_replicate 中对这些列进行求和。这看起来绝对是愚蠢的。难道没有更好的方法来过滤FM中一对多关系的结果吗?

【问题讨论】:

    标签: filemaker


    【解决方案1】:

    下面的结构怎么样:

    Replicate
      ID
    Wash Weight
      Replicate ID
      Type (null or from list of lab assays)
      Tare
      Gross
      Dry
      Ash
      + calculated fields
    

    我假设您只计算相同洗涤类型的重量比。重量类型(皮重、毛重等)在这里不仅仅是标签;由于您在特定位置的公式中使用它们,它们更像是角色,所以我认为它们应该有自己的领域。

    【讨论】:

      【解决方案2】:

      在 Weights 表中添加 tare wt 字段等,然后在 Sample_Replicate 表中添加一个 calc 字段以获取所有相关值的总和

      例如:将字段“total tare wt”添加为“sum (Weights::tare wt)”

      【讨论】:

      • 这是我添加的编辑的建议。我这样做了,因此添加了 15 个计算列。肯定有更好的方法。
      • 您可以设置脚本并使用 ExecuteSQL 从权重表中获取值,而不是计算。您仍然必须拥有 sample_replicate 表中的字段来保存查询结果,但这会让您远离 weights 表中的 calc 字段。查看 FileMaker Pro 12 帮助中的 ExecuteSQL
      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 2021-06-06
      • 2022-11-24
      • 2020-09-05
      • 2014-11-30
      • 1970-01-01
      • 2015-11-22
      • 2018-09-22
      相关资源
      最近更新 更多