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 5609 게시물 읽기
No. 5609
필드로된 일자형태를 합계 구하기 어떻게 하지요
작성자
김길동(jhg3494)
작성일
2010-03-22 10:47ⓒ
2010-03-22 10:48ⓜ
조회수
6,060

안녕하세요

talbe을 아래와 같이 일자를 1일부터 31일 필드로 만들어습니다.
그런데 예를들어 한 제품에 대해 1일부터 5일자 까지 합계을 구하려면
어떨게 하는지 방법이 있나요

데이타형태

 년월   제품코드 일자1 일자2 일자3 일자4 일자5 일자6 일자7 일자8 ~ 일자31
2010.03 A0001    100   102   103   104   105   106  107    108     1031
2010.03 A0002    101   103   103   103   105   106  107    108     1031
2010.03 A0003    102   104   105   104   105   106  107    108     1031 

검색예)
검색기간 2010.03.01 ~ 2010.03.05 을 검색하면

제품코드  합계
A0001     514
A0002     515
A0003     520

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

declare @test table (
yymm varchar(10) ,
code varchar(10) ,
day01 numeric  ,day02 numeric  ,day03 numeric  ,day04 numeric  ,
day05 numeric  ,day06 numeric  ,day07 numeric  ,day08 numeric  ,
day09 numeric  ,day10 numeric  ,day11 numeric  ,day12 numeric  ,
day13 numeric  ,day14 numeric  ,day15 numeric  ,day16 numeric  ,
day17 numeric  ,day18 numeric  ,day19 numeric  ,day20 numeric  ,
day21 numeric  ,day22 numeric  ,day23 numeric  ,day24 numeric  ,
day25 numeric  ,day26 numeric  ,day27 numeric  ,day28 numeric  ,
day29 numeric  ,day30 numeric  ,day31 numeric  )

insert @test select '2010.03', 'A0001',    100,   102,   103,   104,   105,   106,  107,    118,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,   1031
insert @test select '2010.03', 'A0002',    100,   103,   103,   104,   105,   108,  107,    115,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,   1031
insert @test select '2010.03', 'A0003',    100,   104,   103,   104,   105,   114,  117,    112,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,
                                0,     0,     0,     0,     0,     0,    0,      0,0,0,   1031
select *
  from ( select *,yymm+'.'+right(daysnm,2) yymmdd
    from @test
  UNPIVOT
   (qty FOR daysnm IN
    (day01 ,day02 ,day03 ,day04 ,
     day05 ,day06 ,day07 ,day08 ,
     day09 ,day10 ,day11 ,day12 ,
     day13 ,day14 ,day15 ,day16 ,
     day17 ,day18 ,day19 ,day20 ,
     day21 ,day22 ,day23 ,day24 ,
     day25 ,day26 ,day27 ,day28 ,
     day29 ,day30 ,day31 )
    ) AS unpvt ) r
where yymmdd between '2010.03.01' and '2010.03.05'
 


 

지나가다가님이 2010-03-23 12:45에 작성한 댓글입니다.
이 댓글은 2010-03-23 12:49에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5614[MSSQL2005] 새로운 사용자 등록 문제 [1]
김동천
2010-03-26
6983
5613sqlservr.exe 메모리 증가 문제로 DB 서버 먹통되는 현상
강진수
2010-03-25
9293
5612SQL 자동백업에 대해 문의 드립니다..
와니
2010-03-24
6466
5609필드로된 일자형태를 합계 구하기 어떻게 하지요 [1]
김길동
2010-03-22
6060
5607[질문] MSSQL 2005에서 작업에 vbs파일 사용
김형중
2010-03-18
6134
5606디비생성후 스키마 넘기려면?
질문자
2010-03-16
5312
5605기존 운영중인 시스템에 새로운 디비 추가하려면? [1]
질문자
2010-03-16
5286
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다