ID DepID Status
------------------
000 54 0
000 12 1
141 14 0
141 56 1
000 12 0
000 89 1
나는 depID
이있는 위의 표를 가지고 있습니다. 필요한 출력은 다음과 같습니다.하나의 열을 두 개로 나누어서 SQL 열에서 데이터를 검색하십시오.
ID DepOld DepNew
-------------------
000 54 12
141 14 56
000 12 89
상태가 0이면 이전이고 1은 새로운 것을 의미합니다. 위의 출력을 한 테이블에있는 것으로 간주하여 어떻게 얻습니까?
IN
절을 사용할 수 없습니다.
ID DepOld DepNew
를 원하는 것입니다 통과하면 내가Id DepOld DepNew
--------------------
000 54 54
000 12 NULL
141 14 14
141 56 Null
를 얻을 다음
SELECT
ID,
Max(CASE
WHEN Status = 0 THEN DepID
END) DepOld,
Max(CASE
WHEN Status = 1 THEN DepID
END) DepNew
FROM
tablename
GROUP BY
ID
하지만,이 출력을 시도
000 54 12
전체 자체 조인 작동합니다 상태 필드에 대한 추가 조건. – Arvo
자체 참여로 –
데이터를 확인하십시오. 1, 2, 5, 6 행의 ID가 동일해야합니까? 제안 된 결과와 동일합니다. – anonxen