连接查询sql中的语法错误不正确

toi*_*ing 1 sql sql-server

我有以下查询.

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
','附近的语法不正确.

问题在哪里?

Fel*_*tan 5

你不能使用多个表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语法.