【问题标题】:FileMaker: Find Records Based on the Contents of Records in a Related Table?FileMaker:根据相关表中记录的内容查找记录?
【发布时间】:2014-01-07 01:13:18
【问题描述】:

我有一个包含门户的布局。门户显示包含日期的行。主表(“一对多”关系中的“一”表)有两个全局字段,gStartDate 和 gEndDate。

我想做一个查找,它会选择主表中的所有记录,这些记录在相关表中有行,属于这两个日期。

这样做的正确方法是什么?

非常感谢大家提供任何信息!

【问题讨论】:

    标签: find global portal filemaker


    【解决方案1】:

    有几种方法可以做到这一点,最好的方法取决于您的特定数据库:

    简单的关系

    如果关系是这样建立的

    mastertable::index -----< portaltable::mastertableIndex
    

    然后您可以简单地手动或通过脚本在主表上的门户中执行日期范围查找。这看起来像:

    1/1/2013...12/31/2013
    

    在门户的日期字段中,假设您在美国

    当您执行查找时,找到的主记录集都将包含该日期范围内的门户记录。


    复杂的关系

    您还可以建立更复杂的关系,正如您在自己的答案中所指出的那样。这种关系看起来像这样:

    mastertable::index       = portaltable::mastertableIndex
    mastertable::gStartDate <= portaltable::date
    mastertable::gEndDate   >= portaltable::date
    

    如果您使用该关系,您可以进入查找模式,将* 放入门户的日期字段,然后执行查找。这将再次查找日期在该范围内的所有主记录。

    【讨论】:

      【解决方案2】:

      看来正确的方法是将过滤条件(在本例中为日期范围)放入两个表之间的关系中。我以前在门户过滤器中有它。建立关系后,您可以将计算字段添加到主表中,以计算该日期范围内相关字段的数量。然后很容易找到该计算字段何时> 0。

      【讨论】:

      • 在未存储的计算字段上执行查找可能会产生一些非常显着的性能后果。为了速度,您最好直接找到日期范围。我的回答举了两个例子来说明如何做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多