我现在正在尝试Filemaker Pro 12,虽然没有其他基本的数据库经验,但没有以前的FM体验。我遇到的问题是尝试对跨越一对多关系的报表进行过滤查询。这是一个例子;
2个表:
Sample_Replicate
PK
Sample FK
other fields
Weights
Sample_Replicate_FK (linked to PK of Sample_Replicate)
Weight
Measurement type (tare, gross, dry, ash)
Wash type (null or from list of lab assays)
我想创建一份报告,显示:(毛皮),(干皮重)/(毛皮),(灰皮重)/(毛皮)和(干皮重)/(所有干重与非零洗涤类型的总重量。
似乎FM要我为每个值创建列(这是可行的,因为实验室分析列表的变化最小,更新数据库是可以接受的,但不是首选)。我试图在Sample_Replicate表中添加毛重,皮重等,但是当我使用计算字段和方法时它只返回第一个记录(皮重):
tare wt field = Case ( Weights::Measurement type = "Tare"; Weights::Weights )
gross wt field = Case ( Weights::Measurement type = "Gross"; Weights::Weights )
etc...
当我添加标准时,它似乎也失败了:
and Is Empty(Weights::Wash type )
有人能指出我在这个问题上的正确方向。感谢
修改 我偶然发现了这个问题:http://www.filemakertoday.com/com/showthread.php/14084-Calculation-based-on-1-to-many-relationship
似乎我可以为权重表上的每个测量和清洗类型组合创建~15个计算字段,然后在将这15个列添加到表后,在sample_replicate中执行这些列的总和。这似乎绝对是愚蠢的。是不是有更好的方法来过滤FM中一对多关系的结果?
答案 0 :(得分:1)
以下结构如何:
Replicate
ID
Wash Weight
Replicate ID
Type (null or from list of lab assays)
Tare
Gross
Dry
Ash
+ calculated fields
我假设您只计算相同洗涤类型的重量比。重量类型(皮重,毛重等)不仅仅是标签;因为你在特定地方的公式中使用它们,它们更像是角色,所以我认为它们应该得到自己的领域。
答案 1 :(得分:0)
在Weights表中添加tare wt字段等,然后在Sample_Replicate表中添加calc字段以获取所有相关值的总和
ex:将“total tare wt”字段添加为“sum(Weights :: tare wt)”