将多条记录中的数据拉入一行

时间:2013-05-18 15:21:11

标签: database database-design relational-database filemaker

我想从多个记录中提取数据并将它们插入另一个表中单个记录的不同字段中。我正在做的工作要求我提取cw_cat_total字段(这是与特定分配类别相对应的所有分配的总和,并将适当的数据放入另一个表的字段中。

cw_cat_total字段是根据自我加入的关系计算出来的。我无法弄清楚如何将单个组件放入第二张图片中表格的不同列。

enter image description here

任何Filemaker程序员都可以帮助我吗?

更新

我的数据库肯定包含更多表格。它非常复杂(从我的角度来看)。下面是ER图。

ER graph of my database

我尝试实现的是将组件分数拉入results表的不同列,以便可以使用不同类别的不同权重计算学生的分配分数。该课程作业分数以及学生在每个季度(学期)的考试成绩将显示在reports表格中。

作为旁注,我是学校的老师(不是开发人员)。因此,我的架构可能不是业界通常所采用的。我确实读过有关数据库规范化的内容并认为我理解(​​我可能不会,我不确定)。我尽力设计我认为的行业实践。如果我的ER图表存在严重缺陷,影响了我想要的实现,请指出它,以便重新设计整个数据库。我需要根据第4项报告中不同术语的不同加权来计算总体结果(来自results表)。但我认为这个问题与此类似。

1 个答案:

答案 0 :(得分:2)

传统方法:(适用于FileMaker 7以后)

传统上,在FileMaker中执行此操作的方法是创建Coursework_Results表的其他表出现,这些表出现与“_kf_resultID”和“type”相关。

1:在“结果”表上为每种类型的coursework_result创建一个新的计算字段。我们以“课堂作业”为例。

  • 将新字段命名为_k_Classwork
  • 使字段类型计算
  • 将计算设置为文本
  • 设置计算以返回字符串“Classwork”
  • 取消选中“不评估所有引用的字段是否为空”

对“coursework_results”表数据中的每个“类型”重复此过程。

2:对于每个“类型”,在“Coursework_results”表中创建一个新表。将其命名为“Coursework_results_Classwork”。通过以下方式将其链接到“结果”表:

Results::_kp_resultID     \____________/ Coursework_results_Classwork::_kf_resultID
Results::_k_Classwork     /            \ Coursework_results_Classwork::type

对“coursework_results”表数据中的每个“类型”重复此过程。

3:将“classwork_percent”的计算设置为:

Sum ( Coursework_results_Classwork::mark ) / Sum ( Coursework_results_Classwork::max_mark )

然后根据自己新创建的表格事件,类似地设置其他_percent字段。 (例如:Coursework_results_Quiz :: mark和Coursework_results_Project :: mark)

执行SQL (适用于FileMaker 12)

FileMaker 12为您提供了新的ExecuteSQL步骤,您可以使用该步骤跳过在数据库中设置新架构。在这种情况下,您需要做的就是修改“classwork_percent”字段以进行计算:

ExecuteSQL(
    "SELECT
        SUM(mark)
     FROM
        Coursework_results
     WHERE
        _kf_resultID = ?"; 
     ""; ""; _kp_resultID) 

有关详细信息,请查看FileMaker的页面:http://www.filemaker.com/12help/html/func_ref3.33.6.html

另请查看FileMaker SQL Sugar(“@”)模块以获取构建查询的帮助:http://www.modularfilemaker.org/2013/03/filemaker-sql-sugar/