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
운영게시판
최근게시물
MS-SQL Q&A 6902 게시물 읽기
No. 6902
날짜 조건 BETWEEN CASE WHEN 질문입니다
작성자
야마히
작성일
2015-04-24 01:23
조회수
5,903

CASE WHEN 조건절로 케이스 유형에 따라서 날짜를 조회하려고 합니다.

TABLE명 : TEST . 

제목 옆에 괄호는 컬럼명입니다.

제목(TITLE) 유형(KIND) 유형명(KIND_NM) 시작일(START_DT) 종료일(END_DT) 작성일(WRITE_DT)
테스트1 1 일별 19000101 99991231 20150420
테스트2 2 주별  19000101 99991231 20150420
테스트3 3 월별  19000101 99991231 20150420
테스트4 4 분기별  19000101 99991231 20150420
테스트5 5 년별  19000101 99991231 20150420
테스트6 6 기간 20150401 20150531 20150420

유형별에 따라서 CASE WHEN 시작일, 종료일로 한번에 해결하려고 합니다.

유형명이 일별이면 작성일(WRITE_DT) BETWEEN 오늘 AND 오늘 

유형명이 주별이면  작성일(WRITE_DT)  BETWEEN 20150419 AND 20150425

유형명이 월별이면 작성일(WRITE_DT)  BETWEEN 20150401 AND 20150430

유형명이 분기별이면 작성일(WRITE_DT)  BETWEEN 2015401 AND 20150630

유형명이 년별이면 작성일(WRITE_DT)  BETWEEN 20150101 AND 20151231

유형명이 기간 이면 작성일(WRITE_DT)  BETWEEN 시작일 (20150401) AND 종료일(20150501)

데이터는 6건 전부 조회됩니다.

WHERE 조건절에 CASE BETWEEN으로 가능한지 

안되면 WHERE 조건절로 어떻게 구현해야 하나요?

고수님들의 답변 부탁드립니다.

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

질문이 잘 이해는 되지 않지만 대충 WHERE가 이렇게 구성되지 않을까..

WHERE ( 유형명 = '일별' AND 작성일 BETWEEN 오늘 AND 오늘 )
OR ( 유형명 = '별' AND 작성일 BETWEEN 20150419 AND 20150425 )
OR ( 유형명 = '별' AND 작성일 BETWEEN 20150401 AND 20150430 )
.....

 

우욱님이 2015-04-24 09:45에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6906MSSQL C programming
과과곽
2015-05-01
5478
6904쿼리 문의
김영희
2015-04-29
5734
6903SELECT 특정 테이블 쿼리 시 전송 수준 오류 문의 [1]
쿠쿠쿠
2015-04-28
7312
6902날짜 조건 BETWEEN CASE WHEN 질문입니다 [1]
야마히
2015-04-24
5903
6901소계 합계 질문입니다. [2]
이대운
2015-04-19
6883
6900loop in SQL [2]
ohyouknow
2015-04-14
5496
6899ODBC로 비주얼베이직 연동 시키는 법 질문입니다~ㅠ [1]
어어렁
2015-03-31
6296
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다