저희 회사는 현재 전국적으로 150 개 이상의 부서를 운영하고 있습니다. 특정 직책의 경우, 우리는 직원들에게 각 지불 기간을 상환함으로써 유니폼을 지불합니다. 각 부서에는 자체 직원 및 급여 사무소가 있지만 모든 급여는 제 3자가 중앙에서 처리합니다. 회사 내에서의 이전으로 인해 직원이 각 지불 기간마다 중복 환급을받는 위험이 적습니다. 예를 들어, 직원 A는 새로운 부서로 이전하고 새로운 부서뿐만 아니라 구 부문에서도 지속적으로 상환됩니다. 우리 수표가 중앙 집중식으로 처리되었으므로 이런 일이 발생하지 않아야합니다.하지만 회사 데이터웨어 하우스에서 데이터를 가져 와서는 안된다는 것을 확인하고 싶습니다.SQL 쿼리 중복 데이터
이 테스트를 위해 작성한 쿼리는 직원이 근무한 여러 부서의 수를 기준으로 PAYDATE (PAYDATE) 및 Uniform Allowance (UACPPD)를 불필요하게 복제하는 것으로 보입니다.이 직원의 경우 5 개의 다른 부서에서 근무했으며 지역 HR 사무소에서 새 채용 날짜를 현지 시스템으로 이관 할 때마다 동일한 PAYDATE에 대해 5 개의 다른 행이 있습니다. 이것은 반복되는 값과 관련이 있다고 확신합니다.이를 방지하기 위해 쿼리를 구조화하는 방법을 모르겠습니다. 두 테이블 모두를 가져와야하므로 옵션이 아니며 사용하는 조인 유형에 관계없이 복제가 존재합니다. 모든 안내에 미리 감사드립니다!
SELECT
P1.store_number as ST#
,P1.store_transferred_from as XST#
,P1.employee_name as NAME
,P1.ssn as SSN
,P2.pay_date as PAYDATE
,P2.uniform_allowance_amt_cppd AS UACPPD
,P1.job_series as JOBCODE
,P1.hire_date as HIREDATE
FROM PersonnelFile as P1
LEFT JOIN PayrollFile as P2
ON P1.SSN = p2.SSN
WHERE P2.pay_date > '2010-05-14'
and P2.uniform_allowance_amt_cppd in (8.25,8.50,300)
and P1.jobs_series in ('2380','1458')
and P1.ssn = '123456789'
ORDER BY P1.ssn,P2.pay_date;
TOP()의 경우 SQL Server 2012 – Joseph