안녕하세요 MSSQL초보입니다.
아래 표와 같은 테이블에서, 각 행이 미포함한 숫자를 추출하고 싶습니다.
원하는 결과 테이블은 아래와 같습니다.
Date | Degree | NUMBER | N1 | N2 | N3 | N4 | N5 |
2017-11-01 | 001 | 25098 | 2 | 5 | 0 | 9 | 8 |
2017-11-01 | 003 | 67526 | 6 | 7 | 5 | 2 | 6 |
2017-11-01 | 005 | 01748 | 0 | 1 | 7 | 4 | 8 |
2017-11-01 | 006 | 58975 | 5 | 8 | 9 | 7 | 5 |
원하는 결과 테이블은 아래와 같습니다 |
Date | Degree | NUMBER | N1 | N2 | N3 | N4 | N5 | 미포함숫자 | 미포함숫자CNT |
2017-11-01 | 001 | 25098 | 2 | 5 | 0 | 9 | 8 | 13467 | 5 |
2017-11-01 | 003 | 67526 | 6 | 7 | 5 | 2 | 6 | 013489 | 6 |
2017-11-01 | 005 | 01748 | 0 | 1 | 7 | 4 | 8 | 23569 | 5 |
2017-11-01 | 006 | 58975 | 5 | 8 | 9 | 7 | 5 | 012346 | 6 |
현재 제가 사용하는 방법은 대략 아래와 같습니다.
1. 임시테이블 생성, 컬럼1 = 0~9 숫자, 컬럼2 = 값 (있으면 1, 없으면 0/ 초기값 모두 1)
2. ROOP 시작
2-1. N1 ~ N5 값을 SELECT & UNION
2-2. 1번의 테이블과 2번의 테이블을 JOIN, 2번테이블에 없는 숫자는 1번테이블의 컬럼2 = 0
2-3. 임시테이블의 최종값이 0인 숫자들을 추출
3. ROOP 종료
제 방법이 너무 비효율 적인 것 같아 다른 방법이 있는지 배우려고 합니다.
고맙습니다.
. |
Comment 2
-
withSQLServer
2017.11.10 12:04
-
reJanus
2017.11.10 14:54
우워 ..
이렇게 간단하게 되네요.
감사합니다.
앞으로 많이 활용할 수 있을 것 같습니다.
- 예제데이터 샘플
- 질문및시도 결과
- 원하는결과 예시
정성스런 질문에 답변드려봅니다