设计数据库时的问题

时间:2009-10-10 12:33:37

标签: sql ms-access data-transfer

我的任务是在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.

在此检查表中,特定月份的金额将填入相应月份的主表格中。我要做什么查询。

期待您宝贵的建议。

2 个答案:

答案 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查询数据库数据。这可能是我正在使用的版本的函数。

这与您的框架非常不同,您可以选择是否使用它。它对我有用。