【问题标题】:When I LEFT JOIN 2 table, how do I return 0 if the value is NULL?当我 LEFT JOIN 2 表时,如果值为 NULL,我如何返回 0?
【发布时间】:2017-08-26 20:34:39
【问题描述】:

我试图在 SQLite 中使用 coalesce() 或 ifnull() 将 0 设置为 LEFT JOIN 中的任何空值。 我知道这个问题被问了很多,但是,我被困住了。

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;

【问题讨论】:

    标签: sqlite ionic2 ionic-native


    【解决方案1】:

    sum 上改用coalesce

    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;
    

    【讨论】:

    • 我以前试过。没用。在某些情况下,我正在为 Ionic2 应用程序编码,使用 Cordova-sqlite-storage 作为数据库
    • @AhmadZul - 没怎么工作?它仍然产生空值吗?失败了吗?
    • 它没有失败。只是没有返回 0 值
    猜你喜欢
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多