我有以下查询.
with getstock as
(
select
a.bomparent, a.bomchild, a.bomqty, a.bompos, a.baltmethod, a.bomissue
from
bom a
where
bomparent = 'QZ10-0262601' and baltmethod = '1'
union all
select
parent.bomparent, parent.bomchild, parent.bomqty, parent.bompos, parent.baltmethod, parent.bomissue
from
getstock as a
inner join
bom as parent, stock as s on parent.bomparent = a.bomchild
where
parent.baltmethod = '1' and parent.bomparent = s.stocknum
)
select *
from getstock
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误.
消息102,级别15,状态1,行9
','附近的语法不正确.
问题在哪里?
你不能使用多个表JOIN.这是可能的FROM,但我不会建议.这是旧式JOIN语法.您应该使用explicit重写您的查询JOIN:
with getstock as
(
select
a.bomparent, a.bomchild, a.bomqty, a.bompos, a.baltmethod, a.bomissue
from
bom a
where
bomparent = 'QZ10-0262601' and baltmethod = '1'
union all
select
parent.bomparent, parent.bomchild, parent.bomqty, parent.bompos, parent.baltmethod, parent.bomissue
from
getstock as a
inner join
bom as parent on parent.bomparent = a.bomchild
inner join
stock as s on parent.bomparent = s.stocknum
where
parent.baltmethod = '1'
)
select *
from getstock
Run Code Online (Sandbox Code Playgroud)
有关更多阅读:避免使用旧式JOIN语法.