Join 질문 0 1 639

by lqq2 [SQL Query] join datetime [2021.05.03 21:36:59]


제목 없음.png (6,558Bytes)

MEMBER 테이블에서는 이름과 각종 정보 시작날짜(SDATE) 종료날짜(EDATE)를 저장합니다.

MEMBERLOG테이블에서는 회원의 번호(MEMBERNUM)으로 각종운동과 저장시각( DATE)를 저장합니다.

이때 MEMBER는 한사람에 하나의 회원번호만 존재하고  MEMBERLOG에는 MEMBERNUM을 바탕으로 여러개의 정보가 존재 할 수 있습니다.

MEMBER와 MEMBERLOG를 조인하고 마지막 저장한(최근 날짜) MEMBERLOG를 출력하기 위하여 DESC를 사용하여 쿼리를 작성해보려 하는데 배움이 부족하여 질문 남겨봅니다.

감사합니다.

EX)

MEMBER

1 / 홍길동 / 30 / 180 / 80 / 2.1 / 2020-01-01 00:00:01 / 2020-04-01 00:00:01

2 / 김길동 / 35 / 175 / 70 / 2.0 / 2020-01-01 00:00:01 / 2020-07-01 00:00:01

 

MEMBERLOG

1 / 1 / 100 / 90 / 80 / 180 / 79 / 2.0 / 2020-01-02 00:00:01

2 / 1 / 100 / 100 / 90 / 181 / 79 / 1.9 / 2020-01-03 00:00:01

3 / 2 / 50 / 60 / 70 / 175 / 79 / 1.9 / 2020-01-02 00:00:01

4 / 2 / 55/ 65 / 75 / 176 / 77 / 1.8 / 2020-01-03 00:00:01

5 / 2 / 60 / 70 / 85 / 176 / 76 / 1.7 / 2020-01-04 00:00:01

 

원하는 출력결과

MEMBER.MEMBERNUM / MEMBER.NAME / MEMBER.AGE / MEMBERLOG.HEIGHT / MEMBERLOG.WEIGHT / MEMBERLOG.BMI / MEMBERLOG.DEADLIFT / MEMBERLOG.SQUAT / MEMBERLOG.BENCHPRESS / MEMBER.EDATE

1 / 홍길동 / 30 / 181 / 79 / 1.9 / 100 / 100 / 90 / 2020-04-01 00:00:01

2 / 김길동 / 35 / 176 / 76 / 1.7 / 60 / 70 / 85 / 2020-01-04 00:00:01

by pajama [2021.05.03 22:06:54]

오라클에서 해봤는데 memberlog 컬럼명 date가 안되어서 ldate로 바꾸었습니다.


select member.membernum, member.name, member.age, memberlog.height, memberlog.weight, memberlog.bmi, memberlog.deadlift, memberlog.squat, memberlog.benchpress, member.edate
from member, 
    (select membernum, deadlift, squat, benchpress, height, weight, bmi, row_number() over (partition by membernum order by ldate desc) rn from memberlog) memberlog
where memberlog.rn = 1
and member.membernum = memberlog.membernum
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입