TblA TargetDate と TblB DepartmentName の 2 つのテーブルがあります。
2 つのテーブルは、RecNr、DierieNr、ReportMonth、ReportYear の 4 つのフィールドで構成される複合キーを使用して結合されます。
TblA
RecNr, DiarieNr, ReportMonth, ReportYear, TargetDate, DepartmentName
1 1000 7 2013 01/08/2013 DeptA
2 1000 7 2013 01/10/2013 DeptA
3 1000 7 2013 01/08/2013 DeptC
1 3000 7 2013 01/07/2013 DeptB
2 3000 7 2013 01/09/2013 DeptB
3 3000 7 2013 01/01/2014 DeptA
TblB
RecNr, DiarieNr, ReportMonth, ReportYear, Completed
1 1000 7 2013 2013
2 1000 7 2013 2013
3 1000 7 2013 2013
1 3000 7 2013 2013
2 3000 7 2013 2012
3 3000 7 2013 2013
ここで、次のように、2013 年に完了したエントリの各部門の中央値の概要を作成する必要があります。
Department Name TargetDate
DeptA 01/10/2013
DeptB 01/07/2013
DeptC 01/08/2013
これを行うための最善かつ唯一の推測は、以下のクエリのようなものですが、Access で SQL を実行すると、DepartmentName を指定するように求められます。したがって、メインクエリから適切に参照されていないと思います。
SELECT DISTINCT A.DepartmentName,
(SELECT TOP 1 TargetDate
FROM (
SELECT TOP 50 PERCENT TargetDate
FROM TblA A1
WHERE DepartmentName=A2.DepartmentName
ORDER BY A1.DepartmentName
) AS A2
WHERE A.DepartmentName=A2.DepartmentName
ORDER BY TargetDate
)
FROM TblB M
INNER JOIN TblA A ON M.ReportMonth=A.ReportMonth
AND M.ReportYear=A.ReportYear
AND M.DiarieNr=A.DiarieNr
AND M.RecNr=A.RecNr
WHERE A.DepartmentName<>'' AND YEAR(TblB.Completed)=2013