>데이터 베이스 >MySQL 튜토리얼 >SQL에서 지난 달의 현금 가치 합계를 계산하는 방법은 무엇입니까?

SQL에서 지난 달의 현금 가치 합계를 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-17 00:29:25791검색

How to Calculate the Sum of Cash Values within the Last Month in 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.