2013-07-08 2 views
0

HRIS 프로젝트 용 .CSV 파일을 가져와 새 채용 및 종료를보고합니다. 다음 날짜가 표시된 보고서가 하나 있습니다.날짜별로 데이터 분할

|PersNo|Name|EntryDate|TermDate| 

나는 계약 기간 날짜와 사람이 하나의 DB로 가서 NewHire 날짜와 사람들이 다른 DB에 들어갈 수 있도록 날짜를 분할 할.

나는 조건부 분할이 해답이라고 생각하지만 작동하지 않는 것 같습니다. 나는 또한 서서히 변화하는 차원을 생각

|1|EntryDate == EntryDate| 
|2|TermDate == TermDate| 

: 나는 같은 설정 조건을 가지고 있었다. 고용/불 신고 (Hire/Fire Report)의 정보를 참조하는 모든 직원 정보가있는 직원 테이블을 생성하고 기간 날짜가 표시된 직원 (사원 번호를 관계로 사용)에 Term Date를 추가하십시오.

내가 어떻게 개발해야하는지에 대한 생각은 언제나 환영합니다.

+0

패키지가 성공적으로 실행되었지만 데이터가 DB에 실행되지 않았습니다. –

+0

데이터 뷰어를 여러 영역에서 사용할 수있게되어 문제의 원인이되는 조건부 분할처럼 보입니다. 데이터가 그곳에서 멈추고 통과하지 않는 것 같습니다. 나는 Default를 NewHire와 Terms of the Others에 가도록 설정했지만,이 설정이 올바르게되어 있다고는 생각지 않는다. –

+1

내 일반적인 목적은 부울 논리가있는 파생 열을 거기에 추가하는 것입니다. 더 나은 컬럼 이름을 원한다면 그것들을'Option1'과'Option2'라고 부르십시오. 파생 열 뒤 및 조건부 나누기 전에 데이터 뷰어를 밀고 값을 관찰합니다. 나는 @mike Henderson이 데이터에 NULL을 가지고 있다는 점에서 그것이 맞다고 생각합니다. 논리 자체는 틀린 것 같습니다. (TermDate 조건이 언제 만족 될까요?) – billinkc

답변

2

귀하의 상태에서 null이 있는지 확인할 수 있습니다. 예를 들어 ISNULL([TermDate]) == FALSE은 종료 대상으로 보낼 행을 나타낼 수 있습니다.

0

다른 하나의 고려 사항은 직원이 여러 채용 및 해지 날짜를 가질 가능성이 있으며 단일 레코드가 요구 사항에 따라 완전하고 정확한보고를 제공하지 않을 수도 있다는 것입니다.

이 문제를 해결하는 방법에는 두 가지가 있습니다. 고용 날짜가 최신 고용 날짜이고 종료 날짜가 최신 종료 날짜라고 명확히 가정하고 최신 채용 날짜가 종업원이 아직 근무중인 최근 종료 날짜 이후 인 경우를 가정합니다.

더 나은 옵션은 일정 기간 동안 각 트랜잭션을 표시하는 각 직원에 대해 유효한 날짜가 지정된 레코드 스택을 유지하는 것입니다. 이 방법을 사용하면 과거 비교를 제공 할 수있는 더 나은 위치에 서게됩니다. 더욱 세분화하기 위해 (PeopleSoft와 마찬가지로) 동일한 날에 여러 트랜잭션을 기록하기 위해 증가하는 효과적인 순서를 추가하는 것을 고려할 수 있습니다.