使用條件起息日計算總和
在SQL 語句中,您想要計算過去每個唯一交易ID 的現金總額月。為了實現這一點,您需要修改現有的語句以包含這樣的條件:僅應包含起息日在特定日期之後的現金價值。
為了解決這個問題,您嘗試使用 CASE 語句,但由於語法不正確,遇到錯誤。
搜尋到的CASE 表達式的正確語法為:
CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
表達式應修改為如下所示:
SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)
此表達式計算每條記錄的ValueDate 欄位。如果ValueDate大於指定的開始月份日期,則傳回現金值;否則,傳回 0。然後對結果值進行求和以提供指定期間的總現金。
替代方法
為了提高性能,請考慮使用JOIN 和GROUP BY 語句而不是依賴子查詢:
SELECT SUM(cash) FROM Table_a AS a JOIN Table_b AS b ON a.branch = b.branch AND a.transID = b.transID WHERE ValueDate > @startMonthDate GROUP BY a.transID
這種方法避免了與子查詢相關的開銷,並且可以加快執行速度時間。
以上是如何在SQL中根據起息日按交易ID高效求和現金值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!