假设我有两个表,A和B.A有一个ID字段,B有ID,Value和Title字段。这两个ID字段是相关的,因此A和B之间存在一对多的关系。
我想要做的是在A中添加一个计算字段,以从特定值的相关B记录中检索标题。这可能吗?
答案 0 :(得分:2)
根据您要实现的目标,有两种方法可以实现此目的:
A::index ---< B::indexOfA
关系排序
如果在A中创建一个新的计算字段,其中计算= B ::标题,则将使用第一条记录(按排序顺序)。
示例:B有一个字段B :: recordDate,无论输入记录的顺序如何,您总是想要最新的recordDate。您可以修改A :: index ---&lt; 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 :: index。您的A :: titleFromB计算字段为:
ExecuteSQL("SELECT Title from B WHERE index = ?"; ¶ ; "," ; <field, variable or string with index of B> )
答案 1 :(得分:0)
您希望构建关系的方式是每个A和B都有自己唯一的ID字段。然后在B中,有一个id_a字段(或类似的东西),你可以建立你的关系。
从那里我回应了pft221关于ExecuteSQL的内容。这对我来说是一个很棒的功能。它会是这样的:
ExecuteSQL ( "SELECT Title FROM B WHERE id_a =? and title = ?"; ""; ""; <id_a value>; <title value> )
您也可以进行内部联接,但这似乎比它的价值更麻烦。