2017-04-01 97 views
0

我正在尝试设置0到任何空值在LEFT JOIN,使用COALESCE()或IFNULL(),SQLite中。 我知道这个问题已经被问了很多,但是,我坚持。当我LEFT JOIN表2,我怎么返回0,如果该值为NULL?

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; 

回答

0

改为在sum上使用​​3210。

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; 
+0

了我在尝试过。没有工作。对于某些上下文,我正在编写Ionic2应用程序,使用Cordova-sqlite-storage作为数据库 –

+0

@AhmadZul - 没有工作如何?它还产生了空值?它失败了吗? – GurV

+0

它没有失败。只是没有返回0值 –

相关问题