옵션 공급가 합계를 추가해서 뽑으려고 합니다.
상품옵션 상세의 합계를 가져오면 되는데 주문옵션의 옵션 상세 정보와 매칭 시키고 주문 메인 테이블의
상품 코드와 매칭해서 가져와야하는 번거로움이 있네요.
오류코드는 ORA-00937: 단일 그룹의 그룹 함수가 아닙니다 라고 나오네요
추가 하려는 부분에<<<코멘트>>> 이런식으로 코멘트를 달았습니다.
감사 합니다 (__
SELECT SELL_AMT_SUM
/*매출(총판매금액)*/
,
OPRCO_CHRG_AMT
/*쿠폰액(운영사부담액)*/
,
SALE_R
/*실매출(총판매금액 - 배송비 - 쿠폰액)*/
,
SELL_AMT
/*(매출)판매금액*/
,
SELL_TAX
/*(매출)세액*/
,
SPL_AMT_SUM
/*총공급가*/
,
SPL_AMT
/*공급가액*/
,
SPL_TAX
/*세액*/
,
OPT_SPL_AMT
/*옵션공급가 <<<추가해서 뽑으려는 값 입니다(OPT_SPL_AMT)>>>*/
,
DLV_AMT
/*배송비*/
,
SPLCO_CHRG_AMT
/*쿠폰사용금액*/
,
SPL_AMT_TOTAL
/*총공급가(매입)*/
,
GOOD_NM
/*옵션공급가*/
,
(SELL_AMT - OPRCO_CHRG_AMT) - (SPL_AMT + DLV_AMT - SPLCO_CHRG_AMT) AS MARGIN_AMT
/*마진금액 */
FROM
(SELECT SUM(SELL_AMT_SUM) AS SELL_AMT_SUM ,
SUM(OPRCO_CHRG_AMT) AS OPRCO_CHRG_AMT ,
SUM(SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT) AS SALE_R ,
ROUND(SUM( DECODE (TX_TXFR_FG, '047001', (SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT) / 1.1 , '047002', SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT)) ) AS SELL_AMT ,
ROUND(SUM( (SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT) - (DECODE (TX_TXFR_FG, '047001', (SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT) / 1.1 , '047002', SELL_AMT_SUM - DLV_AMT - OPRCO_CHRG_AMT) ) ) ) AS SELL_TAX ,
SUM(SPL_AMT_SUM) AS SPL_AMT_SUM ,
ROUND(SUM( DECODE (TX_TXFR_FG, '047001', SPL_AMT_SUM / 1.1 , '047002', SPL_AMT_SUM)) ) AS SPL_AMT ,
ROUND(SUM( (SPL_AMT_SUM) - (DECODE (TX_TXFR_FG, '047001', SPL_AMT_SUM / 1.1 , '047002', SPL_AMT_SUM) )) ) AS SPL_TAX
,
-- <<<추가해서 뽑으려는 값 입니다(OPT_SPL_AMT)>>>시작
(SELECT NVL(SUM(kk.OPT_AMT_SPL),0)
FROM 상품옵션상세 kk,
주문옵션 yy
WHERE kk.good_cd=yy.good_cd
AND yy.opt_dtl_no = kk.opt_dtl_no
AND NU.GOOD_CD=kk.good_Cd
GROUP BY kk.OPT_AMT_SPL-- ,yy.opt_dtl_no
) ||'/'|| SUM(NU.PRN_AMT) AS OPT_SPL_AMT ,
-- <<<추가해서 뽑으려는 값 입니다(OPT_SPL_AMT)>>> 끝, 결과물은 3000/20 이런 식으로 추출 하려 합니다
SUM(DLV_AMT) AS DLV_AMT ,
SUM(SPLCO_CHRG_AMT) AS SPLCO_CHRG_AMT ,
SUM(SPL_AMT_SUM + DLV_AMT - SPLCO_CHRG_AMT) AS SPL_AMT_TOTAL ,
CASE
WHEN COUNT(*) > 1
THEN MAX(GOOD_NM) || ' 외'
ELSE MAX(GOOD_NM)
END AS GOOD_NM --,
--GOOD_CD AS GOOD_CD ,
-- sum(PRN_AMT) AS PRN_AMT
FROM
(SELECT NVL(a.SELL_AMT_SUM, 0) AS SELL_AMT_SUM ,
NVL(b.OPRCO_CHRG_AMT, 0) AS OPRCO_CHRG_AMT ,
a.TX_TXFR_FG AS TX_TXFR_FG ,
NVL(a.SPL_AMT_SUM, 0) AS SPL_AMT_SUM ,
DECODE(a.dlv_amt_stl_fg, '049002', 0, '049001', NVL(a.DLV_AMT, 0), '0') AS DLV_AMT ,
NVL(b.SPLCO_CHRG_AMT, 0) AS SPLCO_CHRG_AMT ,
a.GOOD_NM AS GOOD_NM , --<<<추가 쿼리 위해 셀렉트>>>
a.GOOD_CD AS GOOD_CD , --<<<추가 쿼리 위해 셀렉트>>>
NVL(a.PRN_AMT,0) AS PRN_AMT
FROM 주문 a
LEFT OUTER JOIN
(SELECT *
FROM 발급쿠폰
WHERE USE_YN = '0'
AND
(
USE_DT BETWEEN '20110814' AND '20110914'
)
) b
ON a.ORDR_MBRNO = b.MBRNO
AND a.CPN_ISS_DT = b.CPN_ISS_DT
AND a.CPN_SEQ = b.CPN_SEQ
WHERE SPL_BCO_CD = '0010000001'
AND TX_TXFR_FG = '047001'
AND a.ORDR_STTS IN ('032008', '032009', '032032', '032033', '032034', '032035', '032036', '032037', '032038', '032039', '032058')
AND getdatestts (a.ORDR_NO, '032008') >= '20110814'
AND getdatestts (a.ORDR_NO, '032008') <= '20110914'
) NU
) ZZ
|