【发布时间】:2016-04-10 21:41:26
【问题描述】:
如何将下面的查询转换为等效的 teradate 查询。我尝试过,但结果差异很大。
select il.domainN as listname, il.SourceID, ns.sourcename, cbo.customerid, cu.username, hv.domainN as HTname
, nvl((select 1
from mydb.customerPP cpp
where cbo.customerid = cpp.customerid
and NOT EXISTS (select 1 from mydb.customerPI cpt where cpp.customerid = cpt.customerid)
and trunc(cpp.startdate) <= sysdate
group by cpp.customerid),0) as BBID
from mydb.customerBO cbo
join mydb.customers cu on cbo.customerid = cu.customerid
join mydb.inv il on cbo.domainN = il.domainN
join mydb.Sources ns on il.SourceID = ns.SourceID
left join mydb2.HT hv on (il.domainN = hv.domainN
and hv.sDate+1 >= il.dDate
and il.dDate+1 >= hv.sDate)
where cbo.customerBOID = 1
and cu.statusid = 1
and il.sourceTID = 2
and il.joinbydate >= cbo.cDate
and trunc(il.dDate) = trunc(sysdate)
谢谢。
【问题讨论】:
-
@GergelyBacso 我刚刚将 hv.sDate+1 和 il.dDate+1 更改为 date+inetrval '1' 天,它运行成功,但结果不一样。我认为还有其他需要更改的地方,或者我做错了。
-
更改为
<datefield> + INTERVAL '1' DAY并将sysdate更改为CURRENT_DATE应该可以解决问题。其他一切看起来都很好。 -
@JNevill no 仍然没有给出正确的结果