처음으로 글을 올립니다.
sql쿼리에 대해서 자료를 찾아봐도 비슷한 내용의 것을 잘 찾지 못하겠네요.
질문내용은 다음과 같습니다.
전제조건 : Tbl_A의 고객CD와 기계번호가 중복된 데이터에 대해서 밑의 처리를 한다.
Tbl_A와 Tbl_B의 상품CD, 서비스CD가 같은 것중에서
Tbl_B의 우선순위가 낮은 데이터에 대해서 Tbl_A의 상태CD의 값을 「3」으로 갱신
Tbl_A
Tbl_B
고객CD 기계번호 상품CD 서비스CD 상태CD 상품CD 서비스CD 우선순위
C0001 G001 AA S001 0 AA S001 100
C0001 G001 BB S002 0 BB S002 10
C0001 G001 CC S002 0 CC S002
20
C0002 G002 CC S003 0 CC S003 50
-- 검색 SQL <=== 검색 쿼리도 자신이 없네요
select A.고객CD, A.기계번호, MAX(B.우선순위)
from Tbl_B B inner join Tbl_A A
on A.상품CD = B.상품CD
and A.서비스CD = B.서비스CD
Group by A.고객CD, A.기계번호
Order by B.우선순위 DESC
--갱신 SQL <=== 문제가 되는 부분!!!
update Tbl_A
set 상태CD = '3'
where 고객CD = 위 검색결과의 고객CD
and 기계번호 = 위 검색결과의 기계번호
and Tbl_B.우선순위 < 위 검색 에서 취득한 우선순위의 최대값
하나의 쿼리로 Update할 수 있는 방법이 있을까요?
간단한 질문이지만, 쿼리작성이 어렵게 느껴집니다.
아시는 분이 계시다면 알려주세요.
개발을 하고 있지만, 부끄러울 정도로 쿼리작성에 대해서 아직도 잘 모르겠네요.
좋은 강좌 등이 있다면 알려주시면 감사하겠습니다.
좋은 주말 잘 보내세요.