FileMaker:获取一对多关系中的特定相关记录



假设我有两个表A和B。A有一个ID字段,B有一个ID、Value和Title字段。这两个ID字段是相关的,因此a和b之间存在一对多的关系。

我想做的是在a中添加一个计算字段,以便从相关的B记录中检索特定值的Title。这可能吗?

有几种方法可以做到这一点,这取决于您想要实现的目标:

A::index ---< B::indexOfA

关系排序顺序

如果你在a中创建了一个新的计算字段,并使用了计算= B::Title,第一个记录(按排序顺序)将被使用。

示例:B有一个字段B::recordDate,并且无论记录输入的顺序如何,您总是需要最新的recordDate。你可以修改A::index——<B::indexOfA关系按recordDate降序排序。您的A::titleFromB计算字段将是:>

B::Title

GetNthRecord

http://www.filemaker.com/help/html/func_ref3.33.10.html

如果您想要从关系到B的特定记录号,您可以使用GetNthRecord函数。

示例:您总是希望显示与b的关系的第二条记录。您的A::titleFromB计算字段将为:

GetNthRecord(B::Title ; 2)

ExecuteSQL

在FileMaker 12中,你可以使用ExecuteSQL计算。

示例:假设您知道要显示其标题的记录的B::索引。您的A::titleFromB计算字段将是:

ExecuteSQL("SELECT Title from B WHERE index = ?"; ¶ ; "," ; <field, variable or string with index of B> )

构建关系的方式是每个A和B都有自己唯一的ID字段。然后在B中,有一个id_a字段(或类似的东西),您可以基于您的关系。

从那里我回显pft221说关于ExecuteSQL。这对我来说是一个伟大的功能。它应该是这样的:

ExecuteSQL ( "SELECT Title FROM B WHERE id_a =? and title = ?"; ""; ""; <id_a value>; <title value> )

你也可以做一个内连接,但这似乎比它值得更多的麻烦。

最新更新