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 7340 게시물 읽기
No. 7340
이거 가능할까요?(query)
작성자
임형구
작성일
2008-02-18 17:26ⓒ
2008-02-19 09:19ⓜ
조회수
5,963

우선 저는 현재 일본에서 postgresql로 개발하고 있는 사람입니다. 아직 내공이 많지 않아서 많이 헤매고 있네요..

질문은 

bus 운행표인데

no   busstop    kubun    name       headcount    remain
1     busstop1      0        midori          1                 19
2     busstop1      0        tsutomu       2                  17
3     busstop3      1        midori          1                  18
4     busstop3      1        tsutomu        2                  20
5     busstop3      0        hyungu        1                   19
6     busstop4      1        hyungu        1                   20

의미는   각  버스정류소가 busstop1-4까지인데
kubun 0가 승차, 1이 하차입니다. 
headcount는 동승자수입니다.
20인승 버스이고 remain은 남은 좌석수입니다.

원하는 리포트형태는

no    busstop     kubun   name    headcount   name      headcount   (5회 반복)   remain
1      busstop1    0          midori        1            tsutomu          2                            17
1      busstop1    0                                                                                             17
1      busstop1    1                                                                                             17
1      busstop1    1                                                                                             17

...
각 반복

가로는 5칸으로 고정되어있습니다.

과연 가능할까요? 비슷하게라고 해보고 싶어요.

급한건 아니니까 천천히 생각해 볼께요. 저도

그럼 이만

포스트그래를 사랑하시는 모든분께 안부를 전합니다...

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

요점이 레코드의 병렬출력인가요.
이를테면 레코드의 필드가 5 개인데
이것은 2개 레코드씩 끊어서 한 줄에 10 개 필드씩 출력하는 그런건가요.

초보대왕님이 2008-02-18 23:35에 작성한 댓글입니다.
이 댓글은 2008-02-18 23:36에 마지막으로 수정되었습니다. Edit

네... 그런 것 같습니다.
각 레코드당 무조건 승차 2레코드 하차 2레코드가 생성되어야 하는 것 같습니다.
대충 해보려고 하는데, 힌트라도 주시면 지가 한번 해보고 싶네요... 오네가이시마스..

임형구님이 2008-02-19 09:06에 작성한 댓글입니다.
이 댓글은 2008-02-19 09:27에 마지막으로 수정되었습니다. Edit
음, 그런 병렬출력이라면 일반 쿼리로는 너무 복잡할 것 같고 SPI 를 쓰면 간단합나다. 이를테면SETLECT * FROM T; 의 결과가t1 | t2 a1-1 | a2-1 a1-2 | a2-2 a1-3 | a2-3 a1-4 | a2-4 a1-5 | a2-5 a1-6 | a2-6
이라면 SPI 로 병렬출력하는 함수를 Parallel(TEXT,INT/*병렬출력횟수*/) 형식으로 만들었다면
SETLECT * FROM Parallel('SETLECT * FROM T',2) AS T(t1 TEXT,t2 TEXT,t3 TEXT,t4 TEXT);
t1 | t2 | t3 | t4 a1-1 | a2-1 | a1-2 | a2-2 a1-3 | a2-3 | a1-4 | a2-4 a1-5 | a2-5 | a1-6 | a2-6
라는 결과를 얻습니다.
초보대왕님이 2008-02-19 11:40에 작성한 댓글입니다.
이 댓글은 2008-02-20 10:07에 마지막으로 수정되었습니다. Edit

그냥 로직으로 처리해서 해결했는데요...

일본에서는 복잡한 쿼리는 잘 사용하지 않는 경향이 있는 것 같군요...

하지만 SPI로 할 수 있다니 정말 대단하군요. 아직 해보진 않았지만

한번 해보고 싶어요...

댓글 감사합니다.

임형구님이 2008-02-20 09:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7343DB를 데이타는 제외하고 테이블만 받으려고 합니다. [1]
김대헌
2008-02-20
5833
7342db 접속 [1]
박상철
2008-02-20
5604
7341기존 DB의 인코딩을 EUC-KR에서 EUC-JP 로 변경하는 방법좀 부탁드립니다. [2]
김대헌
2008-02-19
6497
7340이거 가능할까요?(query) [4]
임형구
2008-02-18
5963
7339Linux 에 있는 PostgreSQL을 win2003의 mssql과 odbc 연결했습니다.
민재홍
2008-02-18
6157
7338like 검색에서 index 사용. [1]
백수환
2008-02-16
5808
7337now()시 뒤죽박죽현상 [4]
영광
2008-02-13
7090
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다