我在ms访问中有一个名为“form”的表,其中包含以下字段: formno,location,status。
我想创建一个计算:
的报告我尝试使用此查询执行此操作:
select count(formno) as totalforms
from form
group by location;
select count(formno) as pendingforms
from form
group by location
WHERE status = 'pending';
答案 0 :(得分:0)
SELECT Location, COUNT(FormNo) AS TotalForms,
SUM(IIF(status = "pending", 1, 0)) AS Pending
FROM FORM GROUP BY Location
这有帮助吗?
答案 1 :(得分:0)
第二个SQL Statment将Where子句放在错误的位置。它应该看起来像其中之一:
SELECT Count(form.formno) AS CountOfformno, form.location
FROM form
GROUP BY form.location, form.status
HAVING (((form.status)='pending'));
SELECT Count(form.formno) AS CountOfformno, form.location
FROM form
WHERE (((form.status)='pending'))
GROUP BY form.location;
基本上,如果您希望按列分组并在其上设置标准,请使用Having Clause。 Where子句在group by子句之前。
要了解SQL语法,您可能会更容易使用“按设计网格查询”(在设计视图中),然后在数据表视图中获得结果后切换到SQL视图。
答案 2 :(得分:0)
表格是保留字,必须用方括号括起来:http://support.microsoft.com/kb/286335。我建议重命名表,因为它会继续引起问题。
select location,count(formno) as totalforms
from [form]
group by location
select location, count(formno) as pendingforms
from [form]
WHERE status = 'pending'
group by location
请注意,如果您希望在表格中包含所有记录,也可以使用count(*):In SQL is there a difference between count(*) and count(<fieldname>)