条件付き SQL 合計 (月ベースの計算を含む)
一意のトランザクションごとに合計現金を計算する大規模な SQL ステートメントがあるとします。次の行を使用して ID を入力します:
select sum(cash) from Table a where a.branch = p.branch and a.transID = p.transID) TotalCash
ここで、合計現金金額のみに明細書を変更する必要があります。 ValueDate が先月以内のもの。解決策は次のとおりです:
select sum(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END) from Table a where a.branch = p.branch and a.transID = p.transID) TotalMonthCash
説明
CASE ステートメントは、検索された CASE 式構文を使用してブール式を評価します (この場合、WHEN ValueDate > @ startMonthDate) を返し、対応する結果 (ここでは現金) を返します。条件が満たされない場合は、代わりに 0 を返します。
最適化のヒント
パフォーマンスが懸念される場合は、依存サブクエリの代わりに JOIN および GROUP BY の使用を検討してください。効率の向上のために。
以上がSQLで毎月の条件に基づいて現金価値を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。