0

SQLite で、coalesce() または ifnull() を使用して、LEFT JOIN の null 値に 0 を設定しようとしています。この質問が多く寄せられていることは知っていますが、行き詰まっています。

BUDGET
amount category
2      food
2      book
2      movie

EXPENSE
amount category
2      food
2      book

EXPECTED RESULT
budsum budcat expsum
2      food   2
2      book   2
2      movie  0

これは私が行ったクエリです。

SELECT SUM(budget.amount) AS budsum, budget.category AS budcat,
SUM(coalesce(expense.amount,0)) AS expsum 
FROM budget 
LEFT JOIN expense 
ON budcat=expense.category
GROUP BY budcat;

SELECT SUM(budget.amount) AS budsum, budget.category AS budcat,
SUM(coalesce(expense.amount,0)) AS expsum 
FROM budget 
LEFT JOIN expense 
ON budcat=expense.category
GROUP BY budcat;
4

1 に答える 1

0

代わりに使用coalesceしてください。sum

select SUM(budget.amount) as budsum,
    budget.category as budcat,
    coalesce(SUM(expense.amount), 0) as expsum
from budget
left join expense on budget.category = expense.category
group by budget.category;
于 2017-04-01T17:22:04.650 に答える