ホームページ > データベース > mysql チュートリアル > SQLで先月の現金価値の合計を計算するにはどうすればよいですか?

SQLで先月の現金価値の合計を計算するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-17 00:29:25
オリジナル
790 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート