首页 > 解决方案 > 如何根据复杂规则创建 SQL?

问题描述

我有 3 列(id、date、amount)并试图计算第 4 列(calculated_column)。

如何创建 SQL 查询以执行以下操作:

需要计算的方式是查看 ID(例如 1)并查看该月的所有相同 ID(例如,对于第一次出现 - 1-Sep,它应该计算为 5,对于第二次出现 - 这将是 5+6 =11 -> 从该月开始的所有金额,包括该金额)。

然后在下个月(10 月) - 它会发现 id=1 的第一次出现并将 3 存储在计算的_column 中,对于 10 月的 id=1 的第二次出现,它将从该月初开始对相同的 id 进行求和(3+ 2=5)

在此处输入图像描述

标签: mysqlsqlmysql-logic

解决方案


假设我理解正确,我会建议一个相关的子查询,例如:

select t.*, 
(
    select sum(u.amount) from table1 u  
    where 
        u.id = t.id and
        date_format(u.date, '%Y-%m') = date_format(t.date, '%Y-%m') and u.date <= t.date
) as calculated_column
from table1 t

(更改表名table1以适合您的数据)


推荐阅读