각 지불 기간에 각 직원이 사용한 시간을 추적하는 Access 데이터베이스가 있습니다.Access 2010 - 여러 레코드에 대해 누적 합계를 표시하고 이전 레코드를 삭제하고 각 줄에 새 레코드를 추가하는 쿼리
나는 각 직원에 대한 이전 26 개 급여 기간의 각, 에서 계산 된 날, 시간을 거슬러 보면 전체가 단지 지난 25 개 급여 기간을 위해 무엇인지 볼 수 있도록하는 질의를 필요로한다. 본질적으로, 26 지불 기간 (또는 그 이상) 오래된 레코드는 줄 단위로 무시해야합니다. 저는 5 년 분량의 기록을 가지고 있으며, 불행히도 이들 모두를 보유 할 필요가 있습니다. 각 직원의 26 지불 기간 누계가 무엇인지 알 수있는 것이 중요합니다. 특정 지불 기간. 기본적으로
, 우리는 각 직원에 대한 총 51 기록을 찾고 - 쿼리가 실제로 가를 보여줍니다 첫 급여 기간, 그러나, 26 급여 기간 전에이다; 이 누계 그 급여 기간에 일어난 플러스 이전 25
테이블 내용을 기반으로하고있다 : HoursID를
, 는 가
이, 을 PayPeriodID HoursUsed, 이을 PayPeriodID,를 직원 ID PayPeriodEndDate
쿼리 결과 TotalOfHoursUsedLast26PP (이 쿼리에서 다시 계산하는 날짜를 요청)
직원 ID,
쿼리 내가 필요 결과 : (이미 작업),
이를 직원 ID 이을 PayPeriodID, 는을 HoursUsed , [총 사용 시간,이 PP 바로 이전의 25 PP를 기준으로
나는 DSum으로 어지럽게 해왔다. 그러나 그것을 만드는 방법을 알아낼 수 없다.만이 각각의 지불 기간 동안 한 번에 한 명의 직원에 대해 필요한 PP를 계산하여 마지막 26 PP를 계산한다.
명확해야 : 2009 년 또는 그 밖의 26 개 지급 기간 동안이 쿼리를 되돌아보고 실행할 수 있어야합니다. - 338.8
2011 ~
2011-5 :
결과는 같은 있습니다 Line4_HoursUsedThisPP -
Line32_HoursUsedLast26PP = Line32_HoursUsedThisPP + Line31_HoursUsedLast26PP : Excel에서, 한 개인 직원, 우리는 다음과 같다 뭔가를했다 6 - 398.5
2011-7 - 428.7
2011-8 - 4425
2011-9 - 451
2011-10 - 451
2011-11 - 451
2011-12 - 451
2011-13 - 451
2011-14 - 451
2011-15 - 451
2011-16 - 452.4
2011-17 - 453.1
2011-18 - 454.3
2011-19 - 454.3
2011-20 - 455
2011-21 - 456.1
2011-22 - 460.2
2011-23 - 480
2011-24 - 480
2011-25 - 480
2011-26 - 480
2012-01 - 453.2
2012-02 - 381.2
2012-03 - 301.2
2012-04 - 221.2
2012-05 - 141.2
2012-06 - 81.5
2012-07 - 51.3
2012-08 - 37.5
2012-09 - 29
2012-10 - 29
2012-11 - 29
2012-12 - 29
2012-13 - 29
2012-14 - 29
2012-15 - 29
2012-16 - 27.6
2012-17 - 26.9
2012-18 - 25.7
2012-19 - 25.7
2012-20 - 25
2012-21 - 23.9
,536 91,363,210 2012-22 - 19.8
2012-23 - 0
당신이 볼 수 있듯이, 누적 합계 위로 아래로 및 간다.
이것은 "지난 26 회 지불 기간의 총 시간 찾기"쿼리에 대한 실제 코드입니다. 인증에 관한 내용 등은 주어진 급여 기간에 직원이 여러 인증을받은 시간이있을 수 있기 때문에 발생합니다. 경우
SELECT List_Employees.ID, Sum(Items_Hours_Actually_Taken.HoursActual) AS SumOfHoursActual
FROM (List_Pay_Periods INNER JOIN (List_Employees INNER JOIN (Items_Certifications INNER JOIN Items_Hours_Actually_Taken ON Items_Certifications.[CertificationID] = Items_Hours_Actually_Taken.[HoursActualCertificationID]) ON List_Employees.ID = Items_Certifications.[CertificationEmployeeID]) ON List_Pay_Periods.[PayPeriodID] = Items_Hours_Actually_Taken.[HoursActualPayPeriod]) INNER JOIN Last_26_PP_From_Today ON List_Pay_Periods.PayPeriodID = Last_26_PP_From_Today.PayPeriodID
GROUP BY List_Employees.ID;
는이 쿼리는 Last_26_PP_From_Today라는 별도의 쿼리에 따라, 분명하지 않다 :
SELECT List_Pay_Periods.PayPeriodID, List_Pay_Periods.PPEnd
FROM List_Pay_Periods
WHERE (((List_Pay_Periods.PPEnd)<Date() And (List_Pay_Periods.PPEnd)>(Date()-14)));
나는 또한 어떤 특정 날짜의 마지막 26 개 급여 기간을 찾을 전환 쿼리를 가지고 : 나는 아마도 여기 누군가가 뭔가를 제공 할 수있는 결정했을 때
PARAMETERS [Date] DateTime;
SELECT List_Pay_Periods.PayPeriodID, List_Pay_Periods.PPEnd
FROM List_Pay_Periods
WHERE (((List_Pay_Periods.PPEnd)<[Date] And (List_Pay_Periods.PPEnd)>([Date]-14)));
나는 절망의 생각 무차별 방법이었다 테이블 만들기 쿼리의 계단식 시리즈를 포함 청소부.
SELECT hbep1.Employee, hbep1.PP
(
SELECT Sum(hbep2.Hours)
FROM Hours_By_Employee_Per_PP AS hbep2
WHERE hbep2.Employee=hbep1.Employee
AND (hbep2.PP Between hbep1.[PP]-25 And hbep1.[PP])
) AS SumLast26
FROM Hours_By_Employee_Per_PP AS hbep1;
나를 가져옵니다 :
Employee SumLast26
2 12
2 12
2 12
2 18
2 91
3 4
3 8
3 88
3 168
3 180
5 15
5 15
5 15
7 43
7 61
7 75
7 97
7 106
7 121
9 19
9 0
re : 유료 기간 번호가 표시되지 않음 - 첫 번째 줄에'hbep1.PP' 다음에 쉼표가 누락 된 것처럼 보입니다. –
당신은 남자들 사이에 꽤 많은 신이 있습니다. 정말 고맙습니다! – Sarah
반갑습니다. 나는 "왕자"로 정착 했었지만 똑같은 고마워. :) –