급합니다. 고수님들... 0 1 979

by jsbj [2016.12.27 15:33:59]


sybase iq 이긴하지만 혹시 아실것같아서 글 올립니다. 

 

SELECT 
'잔액' GUBUN,
convert(int,DBSBJYEAR||'1231') DATE1, 
sum(DBSBJCGJACNT) CG_CNT, 
sum(DBSBJCGJAKEM) 금액

FROM DMKSBJ 

WHERE DBSBJMONTH = 12 
and DBSBJYEAR between 2012
and 2016
GROUP BY DBSBJYEAR 


union


select    '잔액' GUBUN,
        20161231 DATE1,
        count(*) CG_CNT,                                  // 건수
        sum(FGCMSCGKEM-isnull(FGCHSHSKEM,0)) FGCMSCGJKM   // 금액
from
(
        select
                *
        from    DBA.DGBCMS
        where   FGCMSHGDAT <= 20161231 and
               (FGCMSHHDAT = 0 or FGCMSHHDAT > 20120101
) lst
left outer join
(
    select
            FGCHSFCJUM,
            FGCHSBOCOD,
            FGCHSFCGYY,
            FGCHSFCGNO,
            sum(FGCHSHSKEM) FGCHSHSKEM
    from    DBA.DGBCHS
    where   FGCHSHGDAT <= 20161231
    group by FGCHSFCJUM,FGCHSBOCOD,FGCHSFCGYY,FGCHSFCGNO
) chs
on  lst.FGCMSFCJUM = chs.FGCHSFCJUM and
    lst.FGCMSBOCOD = chs.FGCHSBOCOD and
    lst.FGCMSFCGYY = chs.FGCHSFCGYY and
    lst.FGCMSFCGNO = chs.FGCHSFCGNO 

 

이게 당해년도 쿼리인데 전년도 쿼리를 union all 하고 싶습니다. 어떻게 하면 되나요?

당해년 금액 - 전년 금액 빼기가 최종 목적 입니다. 

by 마농 [2016.12.28 09:50:51]

위 쿼리에 몇가지 오류가 보이네요?
  - OR 절에 괄호가 하나 누락되어 있네요.
  - Union 사용은 Union All 로 바꿔야 할 듯.
뺄샘이 목적이라면?
  - 유니온이 아닌 조인 형태로 해야 하지 않나요?
  - 유이온은 아래로 나열, 조인은 옆으로 나열
요구사항이 불명확합니다.
  - 어떤 결과형태를 원하는지를 구체적으로 표현해 주세요.
  - 예시자료를 통해 보여주시면 좋습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입