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 6936 게시물 읽기
No. 6936
3개의 쿼리문을 하나로 합치고 싶어요
작성자
김우성(babokws)
작성일
2015-11-24 09:45ⓒ
2015-11-24 09:46ⓜ
조회수
2,475

select x.icomcode as 코드
, sum((x.tmamoney1 - x.tbamoney1) - (x.cardvat1 + x.cardvat0)) as 현금매출
 from outd_1511 x, comp c
 where x.icomcode = c.comcode
 and x.day1 >= '2015-11-01' and x.day1 <= '2015-11-15'
group by x.icomcode, c.comname order by icomcode

 

select x.icomcode as 코드
, sum((x.tmamoney1 - x.tbamoney1) - (x.cardvat1 + x.cardvat0)) as 현금과세
 from outd_1511 x, comp c
 where x.icomcode = c.comcode
 and x.isvat = '1'
 and x.day1 >= '2015-11-01' and x.day1 <= '2015-11-15'
group by x.icomcode, c.comname order by icomcode

 

select x.icomcode as 코드
, sum((x.tmamoney1 - x.tbamoney1) - (x.cardvat1 + x.cardvat0)) as 현금면세
 from outd_1511 x, comp c
 where x.icomcode = c.comcode
 and x.isvat = '0'
 and x.day1 >= '2015-11-01' and x.day1 <= '2015-11-15'
group by x.icomcode, c.comname order by icomcode

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

SELECT icomcode                            AS 코드
     , comname                             AS 코드명
     , SUM(v)                              AS 현금매출
     , SUM(CASE isvat WHEN '1' THEN v END) AS 현금과세
     , SUM(CASE isvat WHEN '0' THEN v END) AS 현금면세
  FROM (SELECT x.icomcode
             , c.comname
             , x.isvat
             , (x.tmamoney1 - x.tbamoney1) - (x.cardvat1 + x.cardvat0) v
          FROM outd_1511 x
         INNER JOIN comp c
            ON x.icomcode = c.comcode
         WHERE x.day1 >= '2015-11-01'
           AND x.day1 <= '2015-11-15'
        ) a
 GROUP BY icomcode, comname
 ORDER BY icomcode
;

마농(manon94)님이 2015-11-24 13:42에 작성한 댓글입니다.

정말 감사드립니다

수고하세요 ^^

 

추가로 현금매출, 현금과세, 현금면세 들의 각각의 합계도 같이 구할수있나요?

예)

코드 코드명 현금매출 현금과세 현금면세

01 AAA 5,228,630 5,228,630 0

02 BBB 9,417,690 0 9,417,690

03 CCC 799,760 0 799,760

04 DDD 914,700 0 914,700

05 EEE 2,320,170 2,083,640 236,530

06 FFF 788,340 183,600 604,740

07 GGG 28,500 28,500 0

합계 19,497,790 7,524,370 11,973,420

 

김우성(babokws)님이 2015-11-25 21:34에 작성한 댓글입니다.
이 댓글은 2015-11-25 21:45에 마지막으로 수정되었습니다.

SELECT icomcode                            AS 코드
     , CASE GROUPING(icomcode) WHEN 1
       THEN '합계' ELSE MIN(comname) END   AS 코드명
     , SUM(v)                              AS 현금매출
     , SUM(CASE isvat WHEN '1' THEN v END) AS 현금과세
     , SUM(CASE isvat WHEN '0' THEN v END) AS 현금면세
  FROM (SELECT x.icomcode
             , c.comname
             , x.isvat
             , (x.tmamoney1 - x.tbamoney1) - (x.cardvat1 + x.cardvat0) v
          FROM outd_1511 x
         INNER JOIN comp c
            ON x.icomcode = c.comcode
         WHERE x.day1 >= '2015-11-01'
           AND x.day1 <= '2015-11-15'
        ) a
 GROUP BY icomcode
  WITH ROLLUP
;

마농(manon94)님이 2015-11-26 11:29에 작성한 댓글입니다.

정말 감사드립니다

 

수고하세요 ^^

 

김우성(babokws)님이 2015-11-26 21:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6939ms sql where in () 조건시 in절안에 파라메타 최대 개수가 궁금합니다. [1]
jd
2015-11-27
3395
6938산술오버플로 오류입니다. [2]
둥둥이
2015-11-26
2793
6937문자열 추출 [2]
쿠기
2015-11-24
2301
69363개의 쿼리문을 하나로 합치고 싶어요 [4]
김우성
2015-11-24
2475
6935날짜 형 변환 문제
다중이
2015-11-24
2270
6934도와 주세요..sql 문.... [5]
아름이
2015-11-19
2578
6933이 쿼리가 MS-SQL 맞나요?? 해석 좀 도와주세요. [2]
정준민
2015-11-18
2456
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.076초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다