반응형
WHERE
절에서 CASE
조건을 사용하고 있으며 현재 다음 쿼리를 사용하고있는 테이블에서 데이터를 가져 오려고합니다.
SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND (
STATUS = 'Sold'
OR STATUS = 'In Stock'
OR STATUS = 'Ref'
)
AND CASE WHEN (
STATUS = 'Sold'
)
THEN delivery_date >= '2012-08-01'
END
그러나 total
에 대해 0
을 반환하고 purchase
에 대해 NULL
을 반환합니다.
해결 방법
Case Statement를 사용하고 싶습니다. where 절의 case 서술에 대해 설명해 주시겠습니까?
다음과 같이 WHERE
에서 CASE
문을 사용할 수 있습니다.
SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND ( STATUS = 'Sold'
OR STATUS = 'In Stock'
OR STATUS = 'Ref')
AND CASE STATUS
WHEN 'Sold'
THEN delivery_date >= '2012-08-01'
ELSE 1=1
END
참조 페이지 https://stackoverflow.com/questions/12400574
반응형
'MySql' 카테고리의 다른 글
MySQL 동일한 열 값을 가진 필드의 합계를 찾는 MySQL 쿼리 (0) | 2021.01.29 |
---|---|
MySQL phpmyadmin을 사용하여 테이블 구조를 Excel 파일로 내보내기 (0) | 2021.01.29 |
MySQL 내 SQL 데이터베이스에 일대 다 관계를 저장하는 방법은 무엇입니까? (MySQL) (0) | 2021.01.29 |
MySQL 여러 값을 얻기위한 Django MySQL 고유 쿼리 (0) | 2021.01.29 |
MySQL DROP 데이터베이스 권한없이 명령 줄에서 모든 MySQL 테이블을 제거하는 방법은 무엇입니까? (0) | 2021.01.29 |
댓글