Filemaker Pro 12创建一个汇总表

时间:2014-01-08 13:13:31

标签: database relational-database one-to-many filemaker

美好的一天,

有人可以帮我解决这个问题。我正在做一个简短的问答游戏。我无法查看所有尝试的摘要。

我有两张桌子。表1记录了玩家的测验尝试(如果分数等于或高于50,则玩家将进入下一级别)。对于每次尝试,它都会创建一个新记录。例如,假设这是我在filemaker Pro 12中的表格

Table Name(PLAYER_ATTEMPTS_TB)
Attempts_ID >>Player_ID >> Player_Name >> Game_Level    >> Score
1         Player001 >> John Smith  >> Level 1   >> 30
2         Player001 >> John Smith  >> Level 1   >> 40
3         Player001 >> John Smith  >> Level 1   >> 45
4         Player001 >> John Smith  >> Level 1   >> 55
5         Player001 >> John Smith  >> Level 2   >> 26
6         Player001 >> John Smith  >> Level 2   >> 40
7         Player001 >> John Smith  >> Level 2   >> 45
8         Player001 >> John Smith  >> Level 2   >> 60
9         Player001 >> John Smith  >> Level 3   >> 30
10        Player001 >> John Smith  >> Level 3   >> 40
11        Player001 >> John Smith  >> Level 3   >> 48
12        Player001 >> John Smith  >> Level 3   >> 70
etc…

Attempts_ID是主键

所以我要做的就是创建一个汇总表,显示每个玩家等于或高于50的所有尝试。

所以在下表中我会显示所有级别的摘要。

Table Name(PLAYER_SUMMARY_TB)
Summary_ID >>Player_ID >> Player_Name >> Level1_Score >> Level2_Score >> Level3_Score
1        Player001 >> John Smith  >> 55  >> 60 >> 70
2        Player002 >> Simon Cowell>> 55  >> 60 >> 70
etc…

Summary_ID是主键

这两个表有一个关系,由Player_ID字段链接。在“PLAYER_SUMMARY_TB”表中,我已将得分字段设为计算类型,并且我输入了以下内容:

If( PLAYER_ATTEMPTS_TB::Game_Level = Level 1 ; Max(PLAYER_ATTEMPTS_TB:: Score))

这显示了上述if语句的正确结果,但只要我将条件更改为“Level 2”,我就不会得到任何结果。我不确定我做错了什么?这两个表使用Player_ID链接。 Player_ID是PLAYER_SUMMARY_TB上的主键和PLAYER_ATTEMPTS_TB上的外键。

请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:1)

首先,你的“汇总表”基本上是一个玩家表,最好将其视为这样 - 例如,通过在其中包含玩家的名字(一次),而不是在Attempts表中重复它们。

有几种方法可以总结Attempts表。首先,您可以生成表本身的摘要报告,由PlayerID和Level汇总。要排除低于特定阈值的分数,请执行查找作为生成报告的第一步。

另一个选择是在Players布局上使用过滤门户,每个级别一个门户(或者,如果您愿意,可以使用单个门户和全局字段来选择显示的级别)。

另一种方法是添加一个Levels表,并在该表的门户中显示结果(尽管在一些短句中这有点难以正确描述)。如果您想要显示高于阈值的所有次尝试,或者只显示最高得分,也不是很清楚 - 此方法仅显示后者。


您的计算无法工作的原因是因为表达式:

PLAYER_ATTEMPTS_TB::Game_Level

使用第一个相关记录中的数据进行评估。