다음과 같은 오라클 쿼리가 있습니다..
이것을 MSSQL 쿼리로 바꾸려는데요.. 도저히 같은 결과가 나오게끔
바꿔지지가 않아서
질문글을 올립니다.
SELECT
'1' GBN -- 매출
,SUBSTR(A.OUTPUT_DATE,1,6)||'01' OUTPUT_DATE
,MIN(A.DB_CODE)
,MIN(A.IVNC_CODE1)
,A.TAXSHEET_ORDNO ORD_NO
,MIN(A.TAXSHEET_GUBUN)
,MIN(A.COMP_NO)
,A.VAT_TYPE
,MAX(A.GOOD_CODE) GOOD_CODE
,COUNT(A.GOOD_CODE) GOOD_CNT
,NVL(SUM(A.OUTPUT_GONG)-NVL(SUM(B.OUTPUT_GONG),0),0)
OUTPUT_GONG
,NVL(SUM(A.OUTPUT_VAT)-NVL(SUM(B.OUTPUT_VAT),0),0)
OUTPUT_VAT
FROM IO_OUTPS A , OR_ORDMM C,
( SELECT SUBSTR(A.RET_DATE,1,6) RET_DATE
,A.DB_CODE
,A.IVNC_CODE
,B.VAT_TYPE
,B.TAXSHEET_RETNO
,SUM(DECODE(B.VAT_TYPE,'Y',
round(b.dano_mv/1.1)*b.ret_qty,b.dano_mv*b.ret_qty))
OUTPUT_GONG
,SUM(DECODE(B.VAT_TYPE,'Y',
(b.dano_mv-round(b.dano_mv/1.1))*b.ret_qty,0)) OUTPUT_VAT
FROM IO_RETMM A, IO_RET1S B
WHERE A.RET_NO = B.RET_NO
AND A.DB_CODE = B.DB_CODE
AND B.TAXSHEET_GUBUN = 'A'
GROUP BY SUBSTR(A.RET_DATE,1,6),A.DB_CODE, A.IVNC_CODE,
A.RET_NO, B.COMP_NO, B.VAT_TYPE,B.TAXSHEET_RETNO
) B
WHERE A.TAXSHEET_GUBUN = 'A' -- 월합매출
AND SUBSTR(A.OUTPUT_DATE,1,6) = B.RET_DATE(+)
AND A.DB_CODE = B.DB_CODE(+)
AND A.IVNC_CODE1 = B.IVNC_CODE(+)
AND A.TAXSHEET_ORDNO = B.TAXSHEET_RETNO(+)
AND A.VAT_TYPE = B.VAT_TYPE(+)
AND A.DANO_MV > 0
AND A.ORDERNO = C.ORD_NO
AND A.DB_CODE = C.DB_CODE
AND C.ORD_KIND IN ('1','2')
GROUP BY SUBSTR(A.OUTPUT_DATE,1,6),A.VAT_TYPE,
A.TAXSHEET_ORDNO, A.DB_CODE
이런 쿼리를 MSSQL 로 바꿀수 있을까요..
이틀을 꼬박 고생해보다가 고수님들께 조언을 받고자 글을
올립니다...ㅡㅜ
기본적으로 DECODE 부분은 CASE WHEN THEN.,, 을 이용하여 바꾸고..
문법도 바꾸어보고.했는데요
(+) 부분... Left join 을 걸어야 한다는데..
도저히 되지를 않네요..
조언이나 쿼리 바꾸어주시면 감사드리겠습니다.
수고들 하십시요
|