0
我有兩個表: TBLA TargetDate和TBLB DepartmentName的訪問子查詢 - 值未引用
兩個表是使用複合密鑰,其包含四個字段加入: RecNr,DiarieNr,ReportMonth,ReportYear
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
感謝您的評論。在SQL標準中可以省略「AS」。 [鏈接](http://en.wikipedia.org/wiki/Alias_(SQL)) – ejepsen
我嘗試使用女士訪問沒有'AS',沒有工作! –
你是對的!爲簡化起見,上面的查詢已稍作修改。 – ejepsen