FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[4230] Re:파이어버드 count 문의
아폴론 [apollon] 2909 읽음    2011-09-05 19:52
정원철 님이 쓰신 글 :
: 안녕하세요.? 정원철입니다.
:
: 파이어버드로 간단한 통계프로그램을 하나 만들어보고 있습니다.
: 그런데 sql 사용법이 너무 어렵네요.
:
: CREATE TABLE TEST_DATA (
:  UID INTEGER NOT NULL,          // Uid
:  REG_DATE VARCHAR(20) NOT NULL, // 등록날자
:  NAME VARCHAR(20) NOT NULL,     // 작성자명
:  CATE VARCHAR(20) NOT NULL,     // 카테고리(종류1,종류2,.... 종류10)
:  TiTle VARCHAR(255) NOT NULL);  // 문서명
:
: 위와 같은 테이불에서 DBGrid에 다음의 형태로 뿌리려고 합니다.
:
: Name    종류1    종류2    ...    종류10    합계
: 홍길동      1         2                   3           4
: 이름1       3         3                   5           9
: 이름2     10         3                  10         23
: 이름3     15         5                   5          25
: 종  합     29       13                   23         61
:

select  name, sum(종류1) "종류1",sum(종류2),....sum(종류10) "종류10",
    sum(종류1)+sum(종류2)+''''+sum(종류10) "합계"
from
(  
select
   ' ' name,
   0  '종류1',0 '종류2', ...0  '종류10'
  ffrom  rdb$database
--위 문장은 종류1~10까지 모두 나타나게 하기 위해..
union all
select
   name,
   case when cate = '종류1' then 1 else 0  end '종류1',
   case when cate = '종류21' then 1 else 0  end '종류2',
   ...
   case when cate = '종류10' then 1 else 0  end '종류10'
)
group by name

+ -

관련 글 리스트
4218 파이어버드 count 문의 정원철 2663 2011/08/03
4230     Re:파이어버드 count 문의 아폴론 2909 2011/09/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.