2017-04-01 3 views
0

SQLiteでcoalesce()またはifnull()を使用して、LEFT JOIN内のNULL値に0を設定しようとしています。 私はこの質問がたくさん聞かれたことを知っていますが、私は立ち往生しています。LEFT JOIN 2テーブルを使用すると、値が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; 

答えて

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

これまでに試したことがあります。うまくいかなかった。いくつかのコンテキストでは、データベース用にCordova-sqlite-storageを使用してIonic2アプリをコーディングしています。 –

+0

@AhmadZul - どのように動作しませんでしたか?それでもヌルが生成されましたか?それは失敗しましたか? – GurV

+0

それは失敗しませんでした。ちょうど0の値を返さなかった –

関連する問題