我的任务是在MS ACCESS中设计应用程序数据库。在我的数据库中有5个表:
在这里,我将Master作为父记录,另外3人将Cash,Check and Detail作为Master表的子项。
以下是主表
中的字段 Lt no Name Regfee AssessmentYear April May June .......... March
最后12个字段是财务中的月份,需要金额作为值。
这些值应通过查询从支票/现金表中填充。
cheque LTno **month** chqueno date bank **amount** are fields.
在此检查表中,特定月份的金额将填入相应月份的主表格中。我要做什么查询。
期待您宝贵的建议。
答案 0 :(得分:3)
由于数据库未规范化,您必须进行非常复杂的查询才能更新表。你必须做出十二个看起来几乎相同的更新,或者做十二次几乎相同的大查询。
最好将月份值移出主表并进入一个单独的表,其中月份是表格中的字段而不是字段名称。然后很容易将记录添加到它:
insert into MasterMonths (LTno, month, value)
select LTno, month, sum(amount)
from cheque
group by LTno, month
答案 1 :(得分:0)
我做了类似的事情,除了我包括信用卡单和现金购买以及支票。这是基本的簿记。
出于各种原因,我选择了一个名为“almanac”的表,每个日期都有一行(记录)。有一些列(字段)可用于星期几,一年中的某个月等。我用一个用VB编写的小代码片段填充这个表。即使有十年的日期,表中只有大约3,653行。然后,我使用此表的简单连接将事务数据减少为按月汇总的数据。我也可以用其他方式总结。
查询非常简单,我只是使用图形查询界面。但是,我的摘要的行数将是您的十二倍,每行只有一个月。
当我想要以主表格式布局数据时,我使用两种工具之一:MS Access中的交叉表查询工具或MS Excel中的数据透视表工具。它们都非常强大,但枢轴工具更灵活。我不得不在Excel中安装一个名为MS查询的添加项,以便从Excel查询数据库数据。这可能是我正在使用的版本的函数。
这与您的框架非常不同,您可以选择是否使用它。它对我有用。