我有一个像figure (1)的表。 10000是所有产品12个月的moneyStock。 5000是产品384的12个月的moneyStock。现在,我想拿钱,moneyStock和产品384的总计,例如figure (3)。怎么做?
图(2)是我尝试过的:

SELECT siire_code, zaiko_code, month_str, money
FROM test
WHERE siire_code = 384 OR (siire_code = 560 AND zaiko_code = 384)
GROUP BY month_str, zaiko_code


注意:560是所有产品所有月份的moneyStock的ID。

更新:添加了表结构。

最佳答案

select a.month_str,a.money,ifnull(b.moneyStock,0) moneyStock,
       a.money+ifnull(b.moneyStock,0) total
from (select siire_code code,month_str, sum(money) money
        from yourtable
        where siire_code = 384
        group by siire_code,month_str)a
left outer join
        (select zaiko_code code, month_str, sum(money) moneyStock
        from yourtable
        where siire_code =560
        and zaiko_code =384
        group by zaiko_code, month_str) b
on (a.code = b.code
and a.month_str = b.month_str)


参见SQLFiddle Demo here

07-27 15:13