기초적인 쿼리질문 드립니다 ㅠㅠ 0 2 973

by 포병이짱이여 [SQL Query] [2021.02.15 14:37:34]


통계에 사용할 쿼리를 작성중인데 진행이 잘 안되서 질문드립니다 ㅠㅠ

A테이블(일정테이블)

pr_id pr_seq pr_date pr_type
PR01 1 2021-02-15 A
PR01 1 2021-02-16 A
PR01 2 2021-02-16 B
PR01 1 2021-02-17 A
PR02 1 2021-02-13 A
PR02 1 2021-02-14 B
PR02 1 2021-02-15 A

 

B테이블(대여테이블)

rs_id pr_id pr_seq rs_date
RS01 PR01 1 2021-02-14
RS02 PR01 2 2021-02-15
RS03 PR02 1 2021-02-16

 

 

데이터가 저런식으로 존재합니다(실제로 컬럼이 더 많은데 필요한것만 적으면)

가령 제가 2월13일 ~ 2월17일까지의 통계를 조회하게되면

A테이블의 pr_date의 날짜와 B테이블의 rs_date날짜를 이용하여 

pr_id     count

PR01       2

PR02       1

합계        3

이런식으로 뿌려주고 싶습니다(pr_id를 그룹별로..)

(B테이블의 rs_date가 14일(PR01), 15일(PR01), 16일(PR02) 라서..)

join을 하니 데이터가 일자별로 중복되어서 표출이 되더라구요 ㅠㅠ 실제 A테이블에 데이터가 많아서 그런지..

방법을 알려주시면 감사하겠습니다!

by 마농 [2021.02.15 15:08:07]

A 가 필요한가요? B 만 가지고 구하면 될 것 같은데요?

SELECT NVL(pr_id, '합계') pr_id
     , COUNT(*) cnt
  FROM b
 WHERE rs_date BETWEEN '2021-02-13' AND '2021-02-17'
 GROUP BY ROLLUP(pr_id)
;

 


by 포병이짱이여 [2021.02.15 17:45:50]

이렇게 간단하게 생각할 수 있었던 거였군요..

명쾌한 답변 감사드립니다!

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