주문가격 합계구하기 1 2 1,517

by 호야별리 [MySQL] [2023.05.30 11:32:39]


20230530_113109.png (9,890Bytes)

안녕하세요.

 

매번 이곳에서 도움만 받고 있는 사람입니다.

오늘도 도움을 구하고자 이렇게 글을 씁니다.

     SELECT  b.wr_idx
          , b.order_idx   // 주문번호
          , b.wr_proc_name   // 장바구니 상품명
          , b.wr_proc_count  // 장바구니 수량
          , b.wr_proc_price  // 상품 단가
          , (b.wr_proc_count * b.wr_proc_price) AS tot_price // 수량*단가
        FROM order_list a
       INNER JOIN basket_list b
          ON a.idx = b.order_idx
       WHERE DATE_FORMAT(a.order_date, '%Y-%m') = '2023-01'
         AND a.id = a.master_id
         AND a.master_id = 'cmh'
         AND a.price_sum > 0

위 쿼리에서 order_list테이블과 basket_list 테이블을 조인하여
상품명의 코드가 같은값을 합해서 가격을 구하고자 합니다.

이미지에서 wr_idx 는 제품 고유값입니다. 고유값이 같은 제품을 합하고 싶은데 제가 원하는 결과가 나오지 않아

이렇게 문의드립니다. 조언좀 구하겠습니다.

 

감사합니다.

 

by ㅇㅇ준 [2023.05.30 13:05:50]

sum(b.wr_proc_count * b.wr_proc_price) over(partition by wr_idx)

 

아니라면 group by 를 적절하게 사용해보시는 것이..


by 마농 [2023.05.30 14:18:38]

1. 원하는 기준으로 GROUP BY 하시면 됩니다.
2. 컬럼을 가공하여 조건비교하지 마시고 -> 컬럼은 그대로 두고 조건을 가공하여 비교하세요. (order_date 조건)

SELECT b.wr_idx
     , b.wr_proc_name
     , SUM(b.wr_proc_count) AS proc_count
     , b.wr_proc_price
     , SUM(b.wr_proc_count) * b.wr_proc_price AS tot_price
  FROM order_list a
 INNER JOIN basket_list b
    ON a.idx = b.order_idx
 WHERE a.order_date >= DATE_ADD('2023-01-01', INTERVAL 0 MONTH)
   AND a.order_date <  DATE_ADD('2023-01-01', INTERVAL 1 MONTH)
   AND a.id = a.master_id
   AND a.master_id = 'cmh'
   AND a.price_sum > 0
 GROUP BY b.wr_idx, b.wr_proc_name, b.wr_proc_price
;

 

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