에서 각 레코드에 대해 경과 일 DATEDIFF 얻기 :SQL 질문 :이 테이블을 감안할 때 그룹
가 어떻게 ID_NUMBER의 각 그룹에 대해 각 status_date 사이의 일에 DATEDIFF를받을 수 있나요? 즉, ID_Number가 주어진 각 상태의 경과 일 수를 찾아야합니다. 각각에 대해
- 모든 ID_NUMBER 각 ID_NUMBER에 대한 빠른 날짜 있어야 할 received_date이있을 것이다 (그러나 응용 프로그램은 적용하지 않습니다) :
어떤 것들은
는 알고 해당 status_date는 ID_Number가 특정 상태에 주어진 날짜입니다. - 는 상태 열은 항상 반드시
- 모든 ID_NUMBER 최신 날짜 있어야 할 closed_date을해야합니다 (응용 프로그램은 적용하지 않습니다) 같은 순서로 모든 시간을 가지 않습니다 (하지만 응용 프로그램은 적용하지 않습니다)
샘플 출력 : 따라서 ID_Number 2001의 첫 번째 날짜 (received_date)는 2009-05-02이며 다음에 만나는 날짜는 'open'상태이며 2009-05-02이므로 경과 일수는 0입니다. 발생한 다음 날짜로 이동하는 것은 '투자'상태의 2009-05-10이며 경과 일수는 이전 날짜부터 8입니다. 발생한 다음 날짜는 2009-07-11이며 경과 일수는 이전 날짜로부터 62입니다.
는편집 추가 할 :
이 경과 일이 테이블/뷰에 컬럼으로 끝이 할 수 있습니까? 나는이 일부 샘플 출력이 정말 도움이 될 2000
필자는 원본 테이블을 새로운 날짜 열로 복제하기 위해 모든 대답을 추가했습니다. closed_date가없는 경우는 null입니다. –