2008 년 1 월 12 월에 대한 직원의 연금 세부 정보가있는 12 개의 테이블이있는 데이터베이스가 있습니다. 모든 12 개의 테이블에서 금액을 합산 한 각 직원의 12 개월 총 연금을 받고 싶습니다. dec을 통해).많은 테이블을 사용하는 MS 액세스 쿼리
어떻게 작성해야합니까?
2008 년 1 월 12 월에 대한 직원의 연금 세부 정보가있는 12 개의 테이블이있는 데이터베이스가 있습니다. 모든 12 개의 테이블에서 금액을 합산 한 각 직원의 12 개월 총 연금을 받고 싶습니다. dec을 통해).많은 테이블을 사용하는 MS 액세스 쿼리
어떻게 작성해야합니까?
왜 12 가지 테이블이 있습니까? 그것은 근본적으로 나쁜 디자인입니다. 어쨌든
...Select
EmployeeID, Total2008 = Sum(Value)
From
(Select EmployeeID, Value From JanuaryTable
Union All
Select EmployeeID, Value From FebruaryTable
...
Select EmployeeID, Value From DecemberTable)
Group By
EmployeeID
당신은이 디자인을 재고하고, 대신 연도와 월을 표시하는 열이있는 단일 테이블을 할 수 있습니다.
먼저,이 쿼리를 생성하고 "월간 합계"로 저장 :
는현재 디자인을 감안할 때, 쿼리는 (분명히, 자신의 테이블과 필드 이름을 대체)과 같이해야합니다
SELECT
[Monthly Totals].EmployeeNumber,
SUM([Monthly Totals].Pension_Totals) AS Employee_Total
FROM [Monthly Totals]
GROUP BY [Monthly Totals].EmployeeNumber;
지금 두 번째 쿼리를 저장하고 실행
SELECT EmployeeId AS EmployeeNumber, SUM(Pension_Amount) AS Pension_Totals
FROM Pension_January
GROUP BY EmployeeId
UNION ALL
SELECT EmployeeId, SUM(Pension_Amount)
FROM Pension_February
GROUP BY EmployeeId
UNION ALL
.....Other months.....
UNION ALL
SELECT EmployeeId, SUM(Pension_Amount)
FROM Pension_December
GROUP BY EmployeeId;
둘째, 첫 번째를 의미 다른 쿼리를 작성합니다. 그것은 당신에게 필요한 것을 제공해야합니다.
월 1 테이블? 어머. 그렇게해서는 안되는 방법입니다. – duffymo