我有一个递归查询,工作得很好:
with cte as (
select ps.SetProduct from PRODSET ps
left join PRODUCT pr on pr.Product= ps.Product
where ...
union all
select ps.SetProduct from PRODSET ps
inner join cte on ps.Product= cte.SetProduct
)
select distinct cte.SetProduct from cte
添加“创建视图”会在最后一行显示错误“关键字'SET'附近的语法不正确”。我甚至没有使用SET。
整码:
create view wiev_product as
with cte as (
select ps.SetProduct from PRODSET ps
left join PROD pr on pr.Product= ps.Product
where ...
union all
select ps.SetProduct from PRODSET ps
inner join cte on ps.Product= cte.SetProduct
)
select distinct cte.SetProduct from cte
我通过一个未指定的ERP系统访问MYSQL服务器。是ERP限制,还是我的查询有问题?
在代码中是否有任何解决方法,我可以尝试?
谢谢。
编辑:Microsoft SQL Server 2012(SP1)错误156没有; as with
错误102; as之间;与cte
这是一个ERP限制。而不是从cte创建视图而不是在第二个查询中使用该视图作为条件,我设法在具有两个cte的单个查询中完成所有操作。
with cte1 as (
select ps.SetProduct from PRODSET ps
left join PRODUCT pr on pr.Product= ps.Product
where ...
union all
select ps.SetProduct from PRODSET ps
inner join cte on ps.Product= cte.SetProduct
),
cte2 as (
select ps.SetProduct from PRODSET ps
left join PRODUCT pr on pr.Product= ps.Product
where ...
union all
select ps.SetProduct from PRODSET ps
inner join cte on ps.Product= cte.SetProduct
)
select distinct cte1.SetProduct from cte1
where cte1.SetProduct not in (select ... from cte2 where ...)