월별 및 총판별 합계구하기 1 3 2,366

by 호야별리 [MySQL] [2023.06.01 15:47:37]


SUM.png (10,906Bytes)

안녕하세요.

매번 도움만 받고 있습니다.

아래와 같은 형태가 있는데요.

html구조상 td영향인지 총판별 합계는 구해지는데, 

월별 합계가 구해지지 않아 도움을 요청드리고자 합니다.

 

 

select sum(c.cnt*c.price) as price_sum
  from order as a 
 inner join basket as c
    on a.idx = c.ord_idx
 where a.orddate >= '2023-01-01' 
   and a.orddate <= '2023-01-31'

by 마농 [2023.06.01 16:30:23]
SELECT DATE_FORMAT(a.orddate, '%m') 구분
     , IFNULL(SUM(CASE 총판 WHEN 'A총판' THEN c.cnt * c.price END), 0) A총판
     , IFNULL(SUM(CASE 총판 WHEN 'B총판' THEN c.cnt * c.price END), 0) B총판
     , IFNULL(SUM(CASE 총판 WHEN 'C총판' THEN c.cnt * c.price END), 0) C총판
     , IFNULL(SUM(CASE 총판 WHEN 'D총판' THEN c.cnt * c.price END), 0) D총판
     , SUM(c.cnt * c.price) 합계
  FROM order a 
 INNER JOIN basket c
    ON a.idx = c.ord_idx
 WHERE a.orddate >= '2023-01-01'
   AND a.orddate <  '2024-01-01'
   AND 총판 IN ('A총판', 'B총판', 'C총판', 'D총판')
 GROUP BY DATE_FORMAT(a.orddate, '%m')
  WITH ROLLUP
;

 


by 호야별리 [2023.06.01 17:30:05]

감사합니다. 많은 도움되었습니다.

한가지만 더 여쭙자면 현재는 데이터가 있는 월 까지만 노출되는데

12월까지 노출시키려면 어느부분을 수정해줘야 하는지 여쭤봐도 될까요?>?==


by 마농 [2023.06.01 18:57:44]
SELECT 구분
     , IFNULL(SUM(CASE 총판 WHEN 'A총판' THEN 금액 END), 0) A총판
     , IFNULL(SUM(CASE 총판 WHEN 'B총판' THEN 금액 END), 0) B총판
     , IFNULL(SUM(CASE 총판 WHEN 'C총판' THEN 금액 END), 0) C총판
     , IFNULL(SUM(CASE 총판 WHEN 'D총판' THEN 금액 END), 0) D총판
     , SUM(금액) 합계
  FROM (SELECT DATE_FORMAT(a.orddate, '%m') 구분
             , 총판
             , c.cnt * c.price 금액
          FROM order a 
         INNER JOIN basket c
            ON a.idx = c.ord_idx
         WHERE a.orddate >= '2023-01-01'
           AND a.orddate <  '2024-01-01'
           AND 총판 IN ('A총판', 'B총판', 'C총판', 'D총판')
         UNION ALL SELECT '01', '', 0
         UNION ALL SELECT '02', '', 0
         UNION ALL SELECT '03', '', 0
         UNION ALL SELECT '04', '', 0
         UNION ALL SELECT '05', '', 0
         UNION ALL SELECT '06', '', 0
         UNION ALL SELECT '07', '', 0
         UNION ALL SELECT '08', '', 0
         UNION ALL SELECT '09', '', 0
         UNION ALL SELECT '10', '', 0
         UNION ALL SELECT '11', '', 0
         UNION ALL SELECT '12', '', 0
        ) a
 GROUP BY 구분
  WITH ROLLUP
;

 

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