我有一个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;