根据符合给定条件的记录的存在计算值 - FileMaker Pro 13

时间:2014-03-18 10:47:39

标签: filemaker

如何在输出' 1'的表格中编写计算字段?如果同一个表中有其他(相关)记录符合一组给定的标准,并且' 0' 0否则?

这里我的问题更详细地解释了:

我有一张包含'学生'另一个包含考试成绩'。考试成绩'表看起来像这样:

StudentID  SubjectID Level   Result
3234       1         2       A-
3234       2         4       B+
4739       1         4       C+

如果学生也通过了B +或更高级别的科目1的2级考试,则学生只能通过科目2的4级考试。我想在学生中定义一个字段'包含' 1'的表格如果存在符合这些标准且属于正确学生的考试成绩且该考试结果为“0”。否则。

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

让我们举一个结果表的示例,其中结果也计算为数值,例如

StudentID  SubjectID Level   Result   cResultNum
3234       1         2       A-       95
3234       2         4       B+       85
4739       1         4       C+       75

以及包含以下字段的考试表格:

  • RequiredSubjectID
  • RequiredLevel
  • RequiredResultNum

鉴于这些,您可以在考试和(另一次出现)结果之间构建关系:

Exams::RequiredSubjectID = Results 2::SubjectID
AND  
Exams::RequiredLevel = Results 2::Level
AND
Exams::RequiredResultNum ≤ Results 2::cResultNum

这允许每个考试记录计算有资格参加该考试的学生列表=

List ( Results 2::StudentID )

  

我想在学生中定义一个字段'包含' 1'的表格   如果存在属于合适学生的考试成绩   符合这些标准和“0'否则。

此请求不清楚,因为学生可能想要参加许多考试,而且Students表中的字段只能计算一个结果。

答案 1 :(得分:-1)

您需要在表中为要检查的字段执行自联接,例如:

Exam::Level = Exam2::Level
Exam::Student = Exam2::Student

并且"已通过"标准我认为你可以做一个"如果"在这样的计算:

If ( Last(Exam2::Result) = "D" and ...(all the  pass values) ; 1 ; 0 )

编辑: 它可能只是没有通过值我想念它会是这样的:

If ( Last(Exam2::Result) = "F" ; 0 ; 1 )

我希望这会对你有所帮助。