配置单元上的左联接-如何将空值计数为0?

0g0grzrc  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(250)

假设我有一张销售表:

Sale_ID     Sale_date   Sale_amount
93480294    2017-01-01      100.00
12124343    2017-01-02      400.00
19859248    2017-01-01      130.00
65683748    2017-01-01      200.00

一张table回来了

Sale_ID     Return_date  Sale_amount
93480294    2017-01-03      100.00

我试图创建一个totalsales表来计算sale amount减去返回的sale\u amount(如果存在的话)
比如说

select sales.sale_id, sales.sale_amount - returns.sale_amount
from sales_table sales left outer join returns_table returns on sales.sale_id = returns.sale_id

会回来的

12124343        NULL
19859248        NULL
65683748        NULL
93480294        0

但我需要它回来

93480294        0
12124343        400
19859248        130
65683748        200

热释光;dr-如何将右列中没有显示在左列中的行计数为零,以便计算差异?

vptzau2j

vptzau2j1#

试试这个:

select sales.sale_id, sales.sale_amount - isnull(returns.sale_amount, 0)
from sales_table sales 
left outer join returns_table returns on sales.sale_id = returns.sale_id
rekjcdws

rekjcdws2#

使用 coalesce() :

select sales.sale_id,
       coalesce(sales.sale_amount, 0) - coalesce(returns.sale_amount, 0)
from sales_table sales left outer join
     returns_table returns
     on sales.sale_id = returns.sale_id;

相关问题