2017-04-01 57 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值 –