SELECT
(SELECT codi_id FROM OCS_CUSTOMER WHERE chart_id = A.chart_id) AS class,
SUM(ISNULL(A.cash_amount, 0) + ISNULL(A.card_amount, 0) + ISNULL(A.account_amount, 0)) AS amount
FROM OCS_INCOME A
WHERE A.hospital_code = 'MS02'
AND A.income_date = :income_date
GROUP BY A.chart_id
위와 같은 쿼리에서 class가 'shinbee430' 인 경우 파라미터값인 (:income_date) 날짜와 특정날짜와 (ex '2015-02-07' )
비교하여 특정날짜보다 :income_date날짜가 12달보다 작다면 amount에 0을 크다면 정상적으로 위의 sum을 하려면 쿼리
를 어떻게 바꿔야 할까요 ㅡ_ㅡ;;; 쿼리에서 특정날짜 및 shinbee430 는 고정입니다.
-- MS-SQL에서는 이렇게 할수 있네요 SELECT B.codi_id , (CASE WHEN CONVERT(DATETIME, '2015-02-07') < DATEADD(YEAR, -1, :income_date) THEN 0 ELSE SUM(ISNULL(A.cash_amount, 0) + ISNULL(A.card_amount, 0) + ISNULL(A.account_amount, 0)) END) AS amount FROM OCS_INCOME A LEFT JOIN OCS_CUSTOMER B ON A.chart_id = b.chart_id WHERE A.hospital_code = 'MS02' AND A.income_date = :income_date AND B.codi_id = 'shinbee430' GROUP BY A.chart_id, B.codi_id;