从两个可能不适合的查询创建MS Access报告

时间:2013-02-08 00:46:27

标签: sql ms-access report ms-access-2010

我有一个SQL查询,其中包含所有离职次数,所有入口次数,月份名称和月份编号的列。计数功能按月分组。

我有另一个查询,其中包含所有出发次数,“离开情况”描述,月份名称和月份编号的列。计数功能首先按离开情况分组,然后按月分组。每个月有多个离开情况描述,因此查询最终会超过12行。

我正在尝试在MS Access中使用第一个查询进行报告,并在每个月下放置一个“子字段”,以包括任何离开情况描述及其相应的计数出港。

一种可能的解决方案可能是将查询组合在一起,但由于两个原因,我不确定两个查询是否可以合并为一个。 1)第一个查询只有12行(每个月一个)加上相应的Count函数,而第二个查询每个月有多行(月份名称和数字只重复几次),每个都有自己的行计数功能首先按离开情况分组。 2)每个查询都非常复杂(对于我的标准)有几个连接,联合和无数括号,所以我甚至不知道如何开始组合它们。

有没有办法将它们结合起来像我在报告中描述的查询?


如果我不能将这两个查询结合起来,那么这是第一个查询:

SELECT countofdeparturesbymonth.countofdepartures, countofintakesbymonth.countofintakes, countofdeparturesbymonth.monthname, countofdeparturesbymonth.month1
FROM countofdeparturesbymonth
INNER JOIN countofintakesbymonth
ON countofdeparturesbymonth.monthname=countofintakesbymonth.monthname

UNION ALL
SELECT countofdeparturesbymonth.countofdepartures, countofintakesbymonth.countofintakes, countofdeparturesbymonth.monthname, countofdeparturesbymonth.month1
FROM countofdeparturesbymonth
RIGHT JOIN countofintakesbymonth
ON countofdeparturesbymonth.monthname=countofintakesbymonth.monthname
WHERE (((countofdeparturesbymonth.monthname) is null))

UNION ALL 
SELECT countofdeparturesbymonth.countofdepartures, countofintakesbymonth.countofintakes, countofdeparturesbymonth.monthname, countofdeparturesbymonth.month1
FROM countofdeparturesbymonth
LEFT JOIN countofintakesbymonth
ON countofdeparturesbymonth.monthname=countofintakesbymonth.monthname
WHERE (((countofintakesbymonth.monthname) is null))
ORDER BY countofdeparturesbymonth.month1;


第二查询:

SELECT Count(clients.ssn) AS CountOfDepartures, clients.[leaving situation], a.monthname, a.month1
FROM clients 
INNER JOIN 
(SELECT month(clients.[departure date]) AS Month1, months.monthname, clients.ssn 
FROM clients 
INNER JOIN months 
ON month(clients.[departure date])=months.monthnumber 
WHERE clients.[departure date] BETWEEN [Enter Start Date] AND [Enter End Date])  AS A 
ON clients.ssn=a.ssn
WHERE [departure date] BETWEEN [Enter Start Date] AND [Enter End Date]
GROUP BY a.monthname, clients.[leaving situation], a.month1
ORDER BY a.month1;

0 个答案:

没有答案