从MS Access中的单个报表中获取不同查询的数据

时间:2014-06-03 19:45:50

标签: sql ms-access group-by report

我在MS访问中有一个包含以下列的数据表: ID |名称|调查员|开放日期|关闭日期|打开/关闭

我正在尝试创建一个报告,其中包含按调查员名称分组的未结案例,已结案例和待处理案例的总数。问题是这三列是针对不同的事情进行过滤的:打开案例(打开日期),关闭案例(关闭日期)和未决案例(没有日期过滤器)。是否有正确的方法可以获取所有数据在一份没有复杂事情的报告中?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以这样做:

SELECT Investigator, 
       Sum(Abs(Not IsNull([Open Date]) And IsNull([Closed Date]))) AS OpenCases, 
       Sum(Abs(Not IsNull([Closed Date]))) AS ClosedCases, 
       Sum(Abs(IsNull([Closed Date]) And IsNull([Open Date]))) AS PendingCases
FROM MyTable
GROUP BY Investigator

将其放入查询并保存; qInvestigatorSummary等等。然后从查询中构建报告。

几个笔记 我假设空日期字段为空。如果它不为null,您可以通过其他方式([Open Date] ='')或IsDate([Open Date])进行测试。根据空单元格中的内容,它们的反应会有所不同。

此外,我希望你没有按照你的指示命名你的字段。作为一般规则,在字段名称中仅使用字母数字字符会更好,如果需要,可以使用下划线。例如,通过删除空格,'OpenDate'将比'Open Date'好得多。 'open_date'也可以。应该不惜一切代价避免像“打开/关闭”斜杠这样的事情。您还应该避免使用“名称”之类的保留字。数据库对于这样的单词有特殊用途,它可以在将来为您做更多的工作。尝试更简单地命名您的字段,例如“名称”是指什么名称? UserName或CaseName会好得多。描述性将为你和任何跟随你的脚步的人提供服务,而不是简短而且不清楚。