데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안넝하세요.
서브쿼리를 이용해서 자료를 가져와야 하는 상황인데
테이블이 AS 와 AsDetail 이 일대다로 관계를 맺고 있다고 가정했습니다.
AS
AS번호 접수내역 AS비용 완료
1 기계고장 30000 미완료
2. 부품고장 25000
AsDetail
번호 AS번호 수금액 완료, 등록일
1 1 15000 미완료 1-10 1시
2 1 15000 완료 1-11 2시
자료의 구성은 위와 같은데 AS테이블에 보이는 완료 필드는 AS테이블에 있는 자료가 아니라
AsDetail의 컬럼 자료를 가져와서 표시해야 합니다.
표시해야 하는 컬럼은 가장 최근에 입력된 날짜를 기준으로 가져와야 되는 상황입니다.
그렇게 하는 이유는 AsDatail 테이블에서 맨 마지막에 등록된 완료, 미완료만 알수 있으면 되는 상황이기 때문이죠.
SELECT AS번호, 접수내역,
(SELECT Max(등록일) FROM Asdetail on Asdetail.AS번호=AS.AS번호)
FROM AS INNER JOIN AsDetail on AsDetail.AS번호=AS.AS번호
마지막 등록일을 불러오려면 위와 같이 하면 되지만
불러와야 하는 컬럼은 마지막 등록일을 기준으로 그 행에 있는 완료 필드의 값을 가져와야 하는 상황입니다.
이런 경우 어떻게 서브쿼리를 만들어야 할 지 조언을 구하고 싶습니다.
고맙습니다.
Comment 1
-
건우아빠
2019.01.29 15:54
SELECT AS번호, 접수내역,select 완료 from Asdetail where AS번호 = a.AS번호and 등록일 = (SELECT Max(등록일) FROM Asdetail where AS번호=a.AS번호)FROM AS a INNER JOIN AsDetail b on a.AS번호=b.AS번호