집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 지난 달의 현금 가치 합계를 계산하는 방법은 무엇입니까?
SQL에서 조건부 필터링으로 합계 계산
대규모 SQL 문을 처리할 때 요약 값을 계산해야 하는 경우가 많습니다. 그러나 때로는 특정 조건에 따라 데이터의 하위 집합만 고려해야 하는 경우도 있습니다. 이 문서에서는 고유한 거래 ID에 대한 현금 가치 합계를 계산하기 위해 기존 명세서를 수정하는 방법을 살펴봅니다. 단, 결제일이 지난 달 이내인 경우에만 해당됩니다.
문제:
복잡한 SQL 문 내에서 각 거래 ID의 총 현금을 계산하려면 다음 코드를 사용하세요. 사용:
select sum(cash) from Table a where a.branch = p.branch and a.transID = p.transID) TotalCash
그러나 목표는 지난 달의 가치 날짜가 있는 현금 가치의 합계만 계산하도록 이 문을 수정하는 것입니다.
해결책:
수정된 코드는 원래 CASE 표현식을 다음으로 대체해야 합니다. 다음:
SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)
설명:
원래 코드의 CASE 표현식이 잘못된 구문을 사용했습니다. 이 경우에는 부울 표현식이 결과를 결정하기 위해 평가되기 때문에 SEARCH CASE 구문이 필요합니다.
CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
수정된 코드에서 CASE 표현식은 ValueDate가 @startMonthDate보다 큰지 확인합니다. 그렇다면 현금 금액이 계산에 포함됩니다. 그렇지 않으면 0으로 대체됩니다. 이렇게 하면 지난 달의 현금 가치만 고려됩니다.
성능 고려 사항:
성능이 문제가 되는 경우 종속 하위 쿼리 대신 JOIN 및 GROUP BY 사용을 고려하는 것이 좋습니다. 이렇게 하면 문의 실행 속도가 향상될 수 있습니다.
위 내용은 SQL에서 지난 달의 현금 가치 합계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!