使用group by访问时的数据类型不匹配错误

时间:2013-10-21 21:22:55

标签: ms-access ms-access-2013

我有一个数据库,其表格看起来像这样:

[ID],[提交日期],[打开/关闭],[调查员姓名]

我想要一个查询,它为每个调查员提供了打开和关闭案例的数量。我试图使用这个查询:

SELECT [调查员姓名],计数(*)AS总计
来自[主表]
[日期归档]在“start_date”和“end_date”之间以及[打开/关闭] = - 1之间 GROUP BY [调查员姓名];

但我收到一条错误消息:“条件中的数据类型不匹配”。我认为这是因为“调查员名称”列中的空值,我尝试使用Nz,但是查询不会将列名视为按表达式分组。我试过在这里玩,但没有任何效果。

PS:我只编写了开放值的查询,如果有办法获得开放值和闭合值,那就太棒了。

2 个答案:

答案 0 :(得分:1)

如果您想要[结束日期]和[start_date],您应该写

PARAMETERS [end_date] DateTime, [start_date] DateTime;
SELECT [Investigator Name], Count(*) AS Total
FROM [main table]
WHERE [Date Filed] Between [start_date] And [end_date] and [Open/Closed]=-1
GROUP BY [Investigator Name]; 

答案 1 :(得分:1)

如果您希望将其作为参数查询(并提示输入start_dateend_date值),则参数也需要括在方括号中。以下是Access中的查询构建器放在一起的SQL代码:

PARAMETERS start_date DateTime, end_date DateTime;
SELECT [main table].[Investigator Name], Count([main table].ID) AS Total
FROM [main table]
WHERE ((([main table].[Date Filed]) Between [start_date] And [end_date]) AND (([main table].[Open/Closed])=True))
GROUP BY [main table].[Investigator Name];