【发布时间】:2016-01-13 21:38:43
【问题描述】:
我想实现这个:
with Period as
(
SELECT
dp.dtIni as dtRefPeriod,
dp.dtEnd - p.days * interval '1 day' as dtIniWindow,
dp.dtEnd,
p.days
FROM public.vwDimPeriod dp
LEFT JOIN LATERAL ( select cast(vlParam as decimal(18,4)) as days
from public.DBParam
where cdparam = 'LifeTimeValueDays' ) p on TRUE
WHERE dp.dtEnd < CURRENT_DATE
)
,Orders as
(
select
p.dtRefPeriod,
o.nmEmail,
dtOrder,
p.dtIniWindow,
p.dtEnd,
o.cdOrder,
o.vlOrder,
p.days
from
public.vwFactOrder o
LEFT JOIN LATERAL Period p on TRUE
where
ltrim(rtrim(o.nmEmail)) <> ''
and o.blValid = B'1'
)
select * from Orders;
我得到一个错误:
错误:“p”处或附近的语法错误 LINE 1: ...rom public.vwFactOrder o LEFT JOIN LATERAL Period p on TRUE ... ^(执行时间:219 ms;总时间:437 ms)
【问题讨论】:
标签: postgresql common-table-expression