2013-04-07 101 views
2

假设我有两个表,A和B.A有一个ID字段,而B有一个ID,值和标题字段。这两个ID字段是相关的,所以A和B之间存在一对多的关系。FileMaker:以一对多关系获取特定的相关记录

我想要做的是在A中添加Calculation字段以从相关B记录中检索标题以获得具体的价值。这可能吗?

回答

2

有几个方法,你可以这样做,取决于你想要达到的目的:

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>) 
0

要构建你的关系的方式是A和B各自有自己独特的ID字段。然后在B中,有一个id_a字段(或类似的东西),你可以在那里建立你的关系。

从那里我回应pft221关于ExecuteSQL的说法。这对我来说是一个很好的功能。这将是这样的:

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

你也可以做一个内部联接,但似乎是多一点的麻烦比它的价值。

相关问题