假设我有两个表,A和B.A有一个ID字段,而B有一个ID,值和标题字段。这两个ID字段是相关的,所以A和B之间存在一对多的关系。FileMaker:以一对多关系获取特定的相关记录
我想要做的是在A中添加Calculation字段以从相关B记录中检索标题以获得具体的价值。这可能吗?
假设我有两个表,A和B.A有一个ID字段,而B有一个ID,值和标题字段。这两个ID字段是相关的,所以A和B之间存在一对多的关系。FileMaker:以一对多关系获取特定的相关记录
我想要做的是在A中添加Calculation字段以从相关B记录中检索标题以获得具体的价值。这可能吗?
有几个方法,你可以这样做,取决于你想要达到的目的:
A::index ---< B::indexOfA
关系排序
如果您在创造一种新的计算领域计算= 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
在12的FileMaker你可以使用一个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>)
你也可以做一个内部联接,但似乎是多一点的麻烦比它的价值。