我有一个像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