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
운영게시판
최근게시물
MySQL Q&A 31108 게시물 읽기
No. 31108
쿼리 문의 드립니다.
작성자
김진호(jin2133)
작성일
2017-08-22 18:05
조회수
4,208

안녕하세요.

쿼리 문의 드립니다.

 

아래와 같은 테이블 구성인데 (표삽입이 안되네요)

일자  /  업체  /  발주수량  /  입고수량

170822 / A / 20 / 10

170822 / B / 30 / 20

170822 / C / 40/ 20

170821  / A / 20 / 10

170821  / B / 30 / 20

170821  / C / 40 / 20

170820  / A / 20 / 10

170820  / B / 30 / 20

170820  / C / 40 / 20

.

.

.

1개월 씩 다음과 같이 쿼리가 가능 한지  문의 드립니다.

업체   /    1일                          /     2일                       /  ...    

          / 발주합계 / 입고합계  /  발주합계 / 입고합계 / ...

A       / 20           /    10         /      20        /   10          / ... 

B      /  30           /     20       /      30         /   10         /...

C     /   40          /     20       /       40        /     20       /...

 

조그만 힌트라도 부탁드립니다.

감사합니다.

 

 

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

SELECT 업체
     , SUM(CASE 일 WHEN '01' THEN 발주수량 ELSE 0 END) 발주_01
     , SUM(CASE 일 WHEN '01' THEN 입고수량 ELSE 0 END) 입고_01
     , SUM(CASE 일 WHEN '02' THEN 발주수량 ELSE 0 END) 발주_02
     , SUM(CASE 일 WHEN '02' THEN 입고수량 ELSE 0 END) 입고_02
     -- 중략 --
     , SUM(CASE 일 WHEN '20' THEN 발주수량 ELSE 0 END) 발주_20
     , SUM(CASE 일 WHEN '20' THEN 입고수량 ELSE 0 END) 입고_20
     , SUM(CASE 일 WHEN '21' THEN 발주수량 ELSE 0 END) 발주_21
     , SUM(CASE 일 WHEN '21' THEN 입고수량 ELSE 0 END) 입고_21
     , SUM(CASE 일 WHEN '22' THEN 발주수량 ELSE 0 END) 발주_22
     , SUM(CASE 일 WHEN '22' THEN 입고수량 ELSE 0 END) 입고_22
     -- 중략 --
     , SUM(CASE 일 WHEN '30' THEN 발주수량 ELSE 0 END) 발주_30
     , SUM(CASE 일 WHEN '30' THEN 입고수량 ELSE 0 END) 입고_30
     , SUM(CASE 일 WHEN '31' THEN 발주수량 ELSE 0 END) 발주_31
     , SUM(CASE 일 WHEN '31' THEN 입고수량 ELSE 0 END) 입고_31
  FROM (SELECT 업체, 발주수량, 입고수량
             , SUBSTR(일자, 5, 2) 일
          FROM (SELECT '170822' 일자, 'A' 업체, 20 발주수량, 10 입고수량
                UNION ALL SELECT '170822', 'B', 30, 20
                UNION ALL SELECT '170822', 'C', 40, 20
                UNION ALL SELECT '170821', 'A', 20, 10
                UNION ALL SELECT '170821', 'B', 30, 20
                UNION ALL SELECT '170821', 'C', 40, 20
                UNION ALL SELECT '170820', 'A', 20, 10
                UNION ALL SELECT '170820', 'B', 30, 20
                UNION ALL SELECT '170820', 'C', 40, 20
                ) a
         WHERE 일자 LIKE '1708%'
        ) a
 GROUP BY 업체
;

마농(manon94)님이 2017-08-24 09:47에 작성한 댓글입니다.

마농님 언제나 친절한 답변 감사합니다.^^

동일한 방법으로 해결하긴 했는데 혹시 날짜를 쿼리에서 동적 생성되게는 안될까요?

현재는 1~31일 까지 발주_01, 입고_01 처럼 임의로 만들어 주어야 하는데

오늘 날짜에 따라 1 ~ 24일까지 이런식으로 ^^;;;;

김진호(jin2133)님이 2017-08-24 10:22에 작성한 댓글입니다.

SQL 영역에서는 안됩니다.
동적 쿼리는 프로그램 영역이지요.
프로그램에서 동적으로 쿼리를 만들어 주시면 됩니다.

마농(manon94)님이 2017-08-24 10:32에 작성한 댓글입니다.

프로그램에서 해결 했습니다.

답변 감사합니다. ^^

김진호(jin2133)님이 2017-08-24 12:42에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31111쿼리 질문 [2]
아름다움
2017-08-28
4198
31110mysql-5.7.11 에서 page_cleaner 오류
김성환
2017-08-28
4526
31109다른유형의 레코드형태를 조회할때 좋은 방법은 무엇일까요?
권순환
2017-08-23
4105
31108쿼리 문의 드립니다. [4]
김진호
2017-08-22
4208
31107mysql 점검 문의 드립니다.
goblin
2017-08-22
4039
31106MariaDB 서버연동.. 질문할게요.. [1]
김민호
2017-08-20
4004
31105키와 파티셔닝과의 관계 및 키설정에 대한 조언 부탁드립니다. [5]
권순환
2017-08-16
4577
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다