database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41053 게시물 읽기
No. 41053
회의실 예약 DB Layout 문의
작성자
IT재벌(IT재벌)
작성일
2016-01-18 15:01
조회수
8,215

회의실 예약 화면을 개발하려고 합니다.

 

좌측에 회의실 명, 우측상단에 30분단위로 07시 ~ 22시 까지 칼럼을 나눠서 보여주려고 합니다.

 

07 | 08 | 09 | 10 -----------------

회의실1 | | | | | | | |

회의실2 | | | | | | | |

회의실3 | | | | | | | |

 

위와 같은 형태가 되겠네요.

이를 저장하는 Table은

 

사원번호

기준일

회의실코드

시작일

종료일

시작시간

종료시간

 

으로 구성하였습니다.

 

예약된 회의실을 클릭하면 예약시간 및 예약자의 정보가 조회되고,

빈 시간을 클릭하면 예약일 및 시간을 입력할 수 있도록 구성하였는데요.

 

같은날 빈 시간을 예약하면 해당 날짜의 회의실이 두줄로 나타납니다.

 

예를 들어, 회의실1을 1월 18일 09시 ~ 11시 예약 후, 14시 ~ 15시 30분을 예약하면 회의실1이 두줄이 됩니다.

 

이를 한줄로 표현해 줄 수 있는 방법이 있을런지요...

이 글에 대한 댓글이 총 2건 있습니다.

SELECT 회의실코드
     , MIN(CASE WHEN 시작시간 < '0730' AND 종료시간 > '0700' THEN 사원번호 END) "07A"
     , MIN(CASE WHEN 시작시간 < '0800' AND 종료시간 > '0730' THEN 사원번호 END) "07B"
     , MIN(CASE WHEN 시작시간 < '0830' AND 종료시간 > '0800' THEN 사원번호 END) "08A"
     , MIN(CASE WHEN 시작시간 < '0900' AND 종료시간 > '0830' THEN 사원번호 END) "08B"
     , MIN(CASE WHEN 시작시간 < '0930' AND 종료시간 > '0900' THEN 사원번호 END) "09A"
     , MIN(CASE WHEN 시작시간 < '1000' AND 종료시간 > '0930' THEN 사원번호 END) "09B"
     , MIN(CASE WHEN 시작시간 < '1030' AND 종료시간 > '1000' THEN 사원번호 END) "10A"
     , MIN(CASE WHEN 시작시간 < '1100' AND 종료시간 > '1030' THEN 사원번호 END) "10B"
     , MIN(CASE WHEN 시작시간 < '1130' AND 종료시간 > '1100' THEN 사원번호 END) "11A"
     , MIN(CASE WHEN 시작시간 < '1200' AND 종료시간 > '1130' THEN 사원번호 END) "11B"
     , MIN(CASE WHEN 시작시간 < '1230' AND 종료시간 > '1200' THEN 사원번호 END) "12A"
     , MIN(CASE WHEN 시작시간 < '1300' AND 종료시간 > '1230' THEN 사원번호 END) "12B"
     , MIN(CASE WHEN 시작시간 < '1330' AND 종료시간 > '1300' THEN 사원번호 END) "13A"
     , MIN(CASE WHEN 시작시간 < '1400' AND 종료시간 > '1330' THEN 사원번호 END) "13B"
     , MIN(CASE WHEN 시작시간 < '1430' AND 종료시간 > '1400' THEN 사원번호 END) "14A"
     , MIN(CASE WHEN 시작시간 < '1500' AND 종료시간 > '1430' THEN 사원번호 END) "14B"
     , MIN(CASE WHEN 시작시간 < '1530' AND 종료시간 > '1500' THEN 사원번호 END) "15A"
     , MIN(CASE WHEN 시작시간 < '1600' AND 종료시간 > '1530' THEN 사원번호 END) "15B"
     , MIN(CASE WHEN 시작시간 < '1630' AND 종료시간 > '1600' THEN 사원번호 END) "16A"
     , MIN(CASE WHEN 시작시간 < '1700' AND 종료시간 > '1630' THEN 사원번호 END) "16B"
     , MIN(CASE WHEN 시작시간 < '1730' AND 종료시간 > '1700' THEN 사원번호 END) "17A"
     , MIN(CASE WHEN 시작시간 < '1800' AND 종료시간 > '1730' THEN 사원번호 END) "17B"
     , MIN(CASE WHEN 시작시간 < '1830' AND 종료시간 > '1800' THEN 사원번호 END) "18A"
     , MIN(CASE WHEN 시작시간 < '1900' AND 종료시간 > '1830' THEN 사원번호 END) "18B"
     , MIN(CASE WHEN 시작시간 < '1930' AND 종료시간 > '1900' THEN 사원번호 END) "19A"
     , MIN(CASE WHEN 시작시간 < '2000' AND 종료시간 > '1930' THEN 사원번호 END) "19B"
     , MIN(CASE WHEN 시작시간 < '2030' AND 종료시간 > '2000' THEN 사원번호 END) "20A"
     , MIN(CASE WHEN 시작시간 < '2100' AND 종료시간 > '2030' THEN 사원번호 END) "20B"
     , MIN(CASE WHEN 시작시간 < '2130' AND 종료시간 > '2100' THEN 사원번호 END) "21A"
     , MIN(CASE WHEN 시작시간 < '2200' AND 종료시간 > '2130' THEN 사원번호 END) "21B"
     , MIN(CASE WHEN 시작시간 < '2230' AND 종료시간 > '2200' THEN 사원번호 END) "22A"
     , MIN(CASE WHEN 시작시간 < '2300' AND 종료시간 > '2230' THEN 사원번호 END) "22B"
  FROM 회의실예약
 WHERE '20160120' BETWEEN 시작일 AND 종료일
 GROUP BY 회의실코드
;

마농(manon94)님이 2016-01-20 10:52에 작성한 댓글입니다.

마농님 감사합니다..^^

 

IT재벌(IT재벌)님이 2016-01-26 15:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41056ROW를 합치고 싶습니다. [2]
저격왕
2016-01-21
8561
41055쿼리좀 알려주세요... [1]
피어스
2016-01-20
8142
41054쿼리 도움이요..쉬운듯 한데 안되네요. [3]
gome
2016-01-20
8305
41053회의실 예약 DB Layout 문의 [2]
IT재벌
2016-01-18
8215
41052pl/sql 여러 테이블에 여러 칼럼 지우고 싶습니다. [2]
조윤상
2016-01-18
8149
41050조회 속도를 개선하고 싶습니다. [2]
선이
2016-01-14
8772
41049파라메터 설정(긴급문의) [1]
이현정
2016-01-12
8048
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다