출금 불능 사유가 고객번호를 그룹으로 한달에 두번씩 들어옵니다.
맨마지막 날짜 또는 제일 큰 seq로
고객번호 하나당 최근 데이터가 하나씩만 나오게 하려는데
하위쿼리를 잘 몰라서인지 ..
"하위 쿼리를 EXISTS로 정의하지 않은 경우에는 SELECT 목록에서 식을 하나만 지정할 수 있습니다." 에러가 납니다..
아래 두개의 쿼리문을 해봐도 모두 에러가 나더라구용 ㅜ
SELECT 출금 불능 사유코드,(
SELECT 고객번호, MAX(불능사유들어온 날짜)
FROM NP..tblnbanktran
WHERE 고객번호 IS NOT NULL
AND 불능사유들어온 날짜 IS NOT NULL
GROUP BY 고객번호)
SELECT 출금 불능 사유코드
FROM NP..tblnbanktran
WHERE 출금 불능 사유코드IN (SELECT 고객번호, MAX(불능사유들어온 날짜)
FROM NP..tblnbanktran
WHERE 고객번호 IS NOT NULL
AND 불능사유들어온 날짜IS NOT NULL
AND 고객번호 = 'T0000029335'
GROUP BY RDNO );
하위쿼리 개념도 알려주시면 감사드려요ㅠ_ㅠ
Comment 12
-
마힐링
2014.05.28 11:43
-
군고구마
2014.05.28 11:50
같은 출금불능 사유코드에 같은 고객번호가 2번 들어오는데 최근 일자로 해서 1건만 보고싶은 건가요? -
마힐링
2014.05.28 13:10
네 맞습니당 ㅜ최근일자 또는 SEQ의 MAX값입니다 !
마힐링 20140528 예금부족
홍길동 20140527 계좌오류
이렇게 나오게 하고 싶었습니당..
-
군고구마
2014.05.28 13:16
위와 같이 row가 있을때
select 출금불능사유코드,고객번호,MAX(불능사유들어온_날짜)
from dbo.tblnbanktran
group by 출금불능사유코드,고객번호
이렇게 짜시면 될 듯한데요...
출금불능사유코드,고객번호가 같은데 날짜만 다른데 최근 날짜 1건 만 보고 싶다면
구지 하위쿼리를 써서 나타내지 않아도 max로 가능하다고 생각합니다.
-
군고구마
2014.05.28 13:17
위의 쿼리로 하면 다음과 같이 나옵니다.
-
마힐링
2014.05.28 13:24
아ㅜㅜ 군고구마님 그렇게 되면
출금불능 사유코드를 그룹바이에 넣게 되면
한 고객이 두건이 나와서 하위쿼리를 생각해보았습니다 !
-
군고구마
2014.05.28 13:25
아... 같은 사유코드가 아니고 다른 사유코드인가요..?
-
마힐링
2014.05.28 13:25
-
마힐링
2014.05.28 13:25
사유코드가 달마다 다르게 들어온답니다 ㅜㅜ
그래서 최신날짜 또는 데이터에 쌓이는 SEQ에서 맥스 값을 가지고 오게 하려다 보니..
-
마힐링
2014.05.28 13:36
질문을 애매하게 드렸나봐요
select t2.RDNO, t2.SEQ, t2.DEM_CD
FROM NP..tblnbanktran as t2
inner join
(
SELECT RDNO, max (SEQ) AS seqFROM NP..tblnbanktran
WHERE RDNO like 'T%'
GROUP BY RDNO
) as t1 on
t1.RDNO = t2.RDNO
And t1.SEQ = t2.SEQ
해결되었습니당 ㅜ 감사해요!ㅎㅎ -
군고구마
2014.05.28 13:41
이렇게 되어있을 경우
select *
from dbo.tblnbanktran as A
inner join
(
select max(seq)as seq,고객번호
from dbo.tblnbanktran
group by 고객번호
)as B
on A.seq = b.seq
이렇게 짜시면 다음과 같이 나옵니다...
그래도 해결 하셨다니 다행이네요..
위의 쿼리는 날짜순으로 SEQ가 정렬될때 가능한것이니 꼭 알아두시지 바랍니다.
-
마힐링
2014.05.28 14:06
군고구마님 감사합니다 ㅜ_ㅜ 꼭 외워둘게요
하위쿼리를 써야하는건지도 잘 모르겠어요 ㅜ