我正在尝试在两个具有非等联接条件的表之间进行左外联接,但配置单元不支持它。在where子句中添加条件会导致数据丢失。如果有人有解决办法,请告诉我。下面是示例代码snipset
Select B.dt ,D.field, sum(B.qty)
from A INNER join B ON A.dt= B.dt
INNER Join C ON B.nbr=C.nbr
LEFT OUTER JOIN D ON A.nbr2=D.Nbr2
AND B.nbr=D.nbr
---Below non equi join not supported
AND B.dt between C.start_date and C.End_Date
-- Need suggestion of this non equi join.
以下是配置单元中非equi联接的错误:failed:semanticexception[error 10017]:行9:4联接“start\u date”中同时遇到左别名和右别名
1条答案
按热度按时间niknxzdl1#
在你的情况下,有一种方法可以做到这一点。那是一个
union all
/窗口函数方法。我想这正是你想要的:我不是100%确定这是完全相同的——例如,这假设d中最多有一个匹配的记录,并且没有重叠。但其思想是将这些值交错并使用窗口函数作为
last_value()
与ignore null
s选项来获取正确的值。