안녕하세요 쿼리 질문드립니다 0 1 572

by NNine [SQL Query] mssql [2020.07.01 02:05:30]


안녕하세요 쿼리 질문드립니다

버스
모델 좌석수
A 10
승객
이름 예약 좌석
A 1
B 3
C 10

 

결과
결과
2
4
5
6
7
8
9

A버스 의 좌석중 승객이 선택하지 않은 좌석들을 가상(결과)테이블에 출력하는 방법이 있을까요? 도와주세요ㅠ

by 마농 [2020.07.01 08:12:16]
WITH bus_t AS
(
SELECT 'A' bus_cd, 10 seat_cnt
)
, passenger_t AS
(
SELECT 'A' passenger_id, 'A' bus_cd, 1 seat_no
UNION ALL SELECT 'B', 'A',  3
UNION ALL SELECT 'C', 'A', 10
)
, bus_tmp AS
(
SELECT bus_cd, seat_cnt
     , 1 seat_no
  FROM bus_t
 WHERE bus_cd = 'A'
 UNION ALL
SELECT bus_cd
     , seat_cnt
     , seat_no + 1
  FROM bus_tmp
 WHERE seat_no < seat_cnt
)
SELECT a.*
  FROM bus_tmp a
  LEFT OUTER JOIN passenger_t b
    ON a.bus_cd = b.bus_cd
   AND a.seat_no = b.seat_no
 WHERE b.bus_cd IS NULL
;

 

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