如果列名与关键字 sql 匹配,则对列求和

sum column if column name matches with keyword sql

我有来自 table 的记录,这些记录基于费用、收入和基于系统中每个月条目的交易日期。

我的查询工作正常,但我有一些方案可以扩展此查询。

我有一个名为 description 的列。我在查询中需要做的是,如果 description=='deposit' 那么它应该根据每个月的 description=='deposit' 对所有 amounts 求和。

示例:

我在 1 月存入 25000,然后在 2 月存入 3455,然后在 2 月再次存入 34566,依此类推每个月。

这是我的查询,但它没有过滤每个月:

SELECT
    MONTH (transaction_date),
    SUM(amount) AS total_amount,
    (SELECT SUM(amount) as deposit FROM tbl_finanace WHERE description = 'Deposit'),
    SUM(IF(amount < 0, amount, 0)) AS expenses,
    SUM(IF(amount > 0, amount, 0)) AS earning,
    transaction_date
FROM
    `tbl_finanace`
WHERE
    transaction_date LIKE '%2015%'
AND user_id = '15'
GROUP BY
    MONTH (transaction_date)
ORDER BY
    MONTH (transaction_date)

可以使用条件和进行如下计算

SUM(case when description = 'Deposit' then amount else 0 end) AS deposit