首页 >数据库 >mysql教程 >如何在 SQL 中按日期过滤现金值以求总和?

如何在 SQL 中按日期过滤现金值以求总和?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 03:11:43492浏览

How to Filter Cash Values by Date in SQL for Total Summation?

使用 SQL 中的日期过滤来总计现金值

正如您所提到的,您有一个 SQL 语句来计算每笔唯一交易的总现金使用以下行的 ID:

select sum(cash) from Table a where a.branch = p.branch and a.transID = p.transID) TotalCash

将此报表修改为仅具有起息日的总现金价值上个月内,您可以通过以下方式更新:

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 WHEN...THEN。 ..ELSE...END:这是搜索的 CASE 表达式语法,它比较布尔表达式(在本例中为 ValueDate > @startMonthDate) 到一组结果。如果布尔表达式为真,则返回现金值;
  • SUM():该函数用于计算符合日期过滤条件的现金值总和。

性能优化:

顺便说一句,如果查询的性能成为问题,考虑使用 JOIN 和 GROUP BY 而不是依赖子查询来重写它。这可能会缩短执行时间。

以上是如何在 SQL 中按日期过滤现金值以求总和?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn