imapla中用union all来合并两段查询sql,结果发现同一个单号合并后就没有数据了,合并之前一条sql针对那个单号是有数据的,code详见代码,请大佬帮这看一下,谢谢
select * from
(select distinct p.szg_order_id,o.id,d.order_id, o.order_num,
case when o.order_num is null then d.nos
when o.order_num is not null and p.user_num is not null then p.user_num
when o.order_num is not null and p.user_num is null then d.nos
end as 'user_num'
FROM impala_szg.szg_order o
INNER JOIN impala_szg.szg_hotel_tra p ON o.id = p.szg_order_id
RIGHT JOIN impala_szg.szg_hotel_con_details d ON o.order_num = d.order_id
WHERE d.product_name = '出'
and d.type = 1003
union all
select distinct p.szg_order_id, o.id, d.or_id, o.order_num,
case when o.order_num is null then d.nos
when o.order_num is not null and p.user_num is not null then p.user_num
when o.order_num is not null and p.user_num is null then d.nos
end as 'user_num'
FROM impala_szg.szg_order o
INNER JOIN impala_szg.szg_hotel_tra p ON o.id = p.szg_order_id
RIGHT JOIN impala_szg.szg_hotel_con_details d ON o.order_num = d.or_id
WHERE d.product_name = '退'
and d.type=1003) z
where order_id = '20210089412' -- 单号
mark