MAIN_LOT SUB_LOT
1. 201305H 20130101H
2. 201305H 20130102AA
3. 201305H 20130102AB
4. 20130101H 20130101AC
5. 20130101H 20130101AD
6. 20130101H 20130101AE
7. 20130102H 20130102A
8. 20130102H 20130102B
9. 20130102H 20130102C
위 처럼 데이터가 있습니다.
main_lot 아래에 Sub_lot를 합쳐 놓은 건데요..
보시는봐야 같이 합친걸 또 합쳐 놓았네요..
LOT 맨 마지막에 H 가 있으면 합쳐 놓았다는 뜻인데..
합친껄또 합치는 경우가 생겨 버려서..
이걸 쿼리로 불러 와야 합니다.
결과물을 아래 처럼 만들어야 합니다.
201305H 를 쿼리 조건으로 넣으면...
20130101H
20130102AA
20130102AB
20130101AC
20130101AD
20130101AE
이렇게 나와야 합니다.
20130101H를 쿼리 조건으로 넣으면
20130101AC
20130101AD
20130101AE
이렇게 나오면 되구요..
쿼리로 처리 해야 하는데.. 방법이 없을까요?
고수님들 부탁드립니다..
SELECT a.SUB_LOT , isnull(b.MAIN_LOT ,a.MAIN_LOT ) MAIN_LOT
FROM test a LEFT JOIN test b ON a.MAIN_LOT = b.SUB_LOT
WHERE isnull(b.MAIN_LOT ,a.MAIN_LOT ) = '201305H'
FROM test a
WHERE MAIN_LOT = '201305H'
UNION ALL
FROM test a
WHERE MAIN_LOT IN (
SELECT SUB_LOT
FROM test a
WHERE MAIN_LOT = '201305H' )
UNION ALL
FROM test a
WHERE MAIN_LOT IN ( SELECT SUB_LOT
FROM test a
WHERE MAIN_LOT IN (
SELECT SUB_LOT
FROM test a
WHERE MAIN_LOT = '201305H' ) )
http://support.microsoft.com/default.aspx?scid=kb;en-us;q248915