我想从可定义的日期范围内的5个不同字段中搜索问题代码,然后得到每个返回的问题代码的总和。下面的“我的查询”对每个查询返回的每个问题代码进行求和,但不会将一个查询的总计添加到另一个查询。访问联盟总和查询
SELECT CUSTRAC.PROBLEM_CO, Count(CUSTRAC.PROBLEM_CO) AS CountOfPROBLEM_CO1
FROM CUSTRAC
WHERE (((CUSTRAC.DATE_SHIPP) Between [Begin Date] And [End Date]))
GROUP BY CUSTRAC.PROBLEM_CO, ([custrac].[problem_co])
HAVING (((CUSTRAC.PROBLEM_CO)<>""));
Union SELECT CUSTRAC.PROB_2, Count(CUSTRAC.PROB_2) AS CountOfPROB_2
FROM CUSTRAC
WHERE (((CUSTRAC.DATE_SHIPP) Between [Begin Date] And [End Date]))
GROUP BY CUSTRAC.PROB_2, ([custrac].[prob_2])
HAVING (((CUSTRAC.PROB_2)<>""));
Union SELECT CUSTRAC.PROB_3, Count(CUSTRAC.PROB_3) AS CountofPROB_3
FROM CUSTRAC
WHERE (((CUSTRAC.DATE_SHIPP) Between [Begin Date] And [End Date]))
GROUP BY CUSTRAC.PROB_3, ([custrac].[prob_3])
HAVING (((CUSTRAC.PROB_3)<>""));
Union SELECT CUSTRAC.PROB_4, Count(CUSTRAC.PROB_4) AS CountofPROB_4
FROM CUSTRAC
WHERE (((CUSTRAC.DATE_SHIPP) Between [Begin Date] And [End Date]))
GROUP BY CUSTRAC.PROB_4, ([custrac].[prob_4])
HAVING (((CUSTRAC.PROB_4)<>""));
UNION SELECT CUSTRAC.PROB_5, Count(CUSTRAC.PROB_5) AS CountofPROB_5
FROM CUSTRAC
WHERE (((CUSTRAC.DATE_SHIPP) Between [Begin Date] And [End Date]))
GROUP BY CUSTRAC.PROB_5, ([custrac].[prob_5])
HAVING (((CUSTRAC.PROB_5)<>""));
这还没有有效的SQL。 UNION关键字不能是分号后的第一个标记。无论如何,你为什么使用UNION?这删除重复。你想删除重复?我猜不是。 –
我不认为你使用'HAVING'的方式也是有效的。 “HAVING”应该与聚合函数一起使用。 –
我们还要提出这样一个事实,即group by statement在所有五个查询中提到了两次相同的列。 –