如何基于多个表创建报表?

时间:2014-05-27 18:56:35

标签: database ms-access ms-access-2007

以下是设置:

  1. 我有一个包含大约7个表的数据库。表(tblUsers)中的一个存储数据库用户的名称,而other six tables用于存储数据库用户输入的信息。因此,tblUsers与数据库中显示"ALL records from 'tblUsers' and only those records from 'OtherTable' where the joined fields are equal."
  2. 的所有其他表之间存在一对多的关系
  3. 我创建了一个带有组合框的表单(frmReport),从tblUsers中选择一个用户和两个允许我选择日期范围的文本框。
  4. 以下是我想要完成的内容:我想创建一个报告,根据表单中的条件从所有六个表中返回信息。

      

    PS。我能够根据两个表创建一个报告,例如。 tblUsers和另一张桌子,但每当我有更多的那张桌子时,我会感到困惑。我希望我足够清楚。

1 个答案:

答案 0 :(得分:0)

使用一个包含多个LEFT JOIN的查询,例如:

SELECT tblUsers.*, tblA.*, tblB.*, tblC.*, tblD.*, tblE.*, tblF.*
FROM tblUsers
LEFT JOIN tblA ON tblUsers.pk=tblA.fk
LEFT JOIN tblB ON tblUsers.pk=tblB.fk
LEFT JOIN tblC ON tblUsers.pk=tblC.fk
LEFT JOIN tblD ON tblUsers.pk=tblD.fk
LEFT JOIN tblE ON tblUsers.pk=tblE.fk
LEFT JOIN tblF ON tblUsers.pk=tblF.fk

LEFT JOIN仅包含第一个表中的记录和第二个表中匹配的记录。在这种情况下,我将pk称为tblUsers中的主键,将fk称为其他表中的关联外键。当然,您可以在此查询示例中替换表名。

这将在tblUser表中创建一个与每个用户关联的长记录,但没有与用户不匹配的记录。