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
운영게시판
최근게시물
PostgreSQL Q&A 7081 게시물 읽기
No. 7081
년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들고 싶은데...
작성자
임형구
작성일
2007-03-19 11:46
조회수
6,338

먼저 이렇게 좋은 사이트를 운영하시는 운영자 모든 분들께 깊은 감사의 인사를 드립니다.
오라클 클럽에서 퀴즈로 나온건데, 포스트그레에서 어떻게 하면 되는지 감을 못잡겠네요...

지금 프로젝트에서 좀 시간이 있어서 공부하고 있는데,
많은 분들의 조언 부탁드립니다.

감사합니다.

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

달력의 출력 양식을 이야기 하셔야할 것 같네요.


html 테이블을 모양인지, 


unix cal 명령어 모양인지, 


아니면 우리은행 다이어리 모양인지 ^^

김상기(ioseph)님이 2007-03-19 15:00에 작성한 댓글입니다.

generate_series 를 이용하여 만들어 봤습니다.



함수로 만들어서 사용하셔도좋을거 같습니다.


대충 테스트 해보니 잘 되는거 같아 보여서 올려 봅니다.


(참고: generate_series() 가 동작하는 버젼에서 사용가능합니다.)




prepare calendar (int) as

  select

    min(case date when 1 then lvl end) as "일",

    min(case date when 2 then lvl end) as "월",

    min(case date when 3 then lvl end) as "화",

    min(case date when 4 then lvl end) as "수",

    min(case date when 5 then lvl end) as "목",

    min(case date when 6 then lvl end) as "금",

    min(case date when 7 then lvl end) as "토"

  from (

    select

      lvl,

      to_char(to_date($1, 'YYYYMM') + lvl - 1, 'D') as date,

      trunc((to_char(to_date($1, 'YYYYMM'), 'D')::int + lvl - 2) / 7) as week

    from generate_series(1,31) as lvl

    where lvl <= to_char(to_date($1, 'YYYYMM') + interval '1 month' - interval '1 day', 'DD')::int

  ) t

  group by week order by week;




execute calendar (200703);


 일 | 월 | 화 | 수 | 목 | 금 | 토

----+----+----+----+----+----+----

     |     |     |     |  1 |   2 |  3

  4 |   5 |  6 |   7 |  8 |   9 | 10

 11 | 12 | 13 | 14 | 15 | 16 | 17

 18 | 19 | 20 | 21 | 22 | 23 | 24

 25 | 26 | 27 | 28 | 29 | 30 | 31

(5 rows)



대충 이런 식으로 나오는군요..

tyro님이 2007-03-19 23:25에 작성한 댓글입니다. Edit

답변주셔서 정말 감사합니다.
포스트그레도 정말 배울게 아직 너무 많군요...!!!

임형구(damansa)님이 2007-03-22 16:56에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7084ERROR: Invalid page header in block 4945 [1]
초보자
2007-03-23
4754
7083insert on duplicate 가 없는건가요? [1]
송효진
2007-03-21
4300
7082쿼리 질문입니다. [2]
조진우
2007-03-19
4595
7081년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들고 싶은데... [3]
임형구
2007-03-19
6338
7080프로시저 이용 외부 실행파일 실행하기 질문드립니다. [2]
이승미
2007-03-17
5171
7079irc에서 postgresql유저 채널 혹시 아시나용? [1]
PG짱
2007-03-16
4223
7078execute 리턴값 [3]
난파
2007-03-16
4719
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다