【发布时间】:2015-09-18 17:11:55
【问题描述】:
我正在使用 SQL 服务器,需要根据作业编号从其他 3 个表中将记录插入一个名为“dummy”的表中。正在提取哪些作业编号由名为“Mmay”的第 5 个表中的值范围确定。任何表中都没有唯一键,并且作业编号重复。 Mmay 的数据如下所示,jnost 是范围的起始值,jnofn 是范围的结束值。
这是我尝试过但不起作用的代码
INSERT INTO dummy (code, invno, ven, invdate, amon, accno, amnt, jno, saccno, ckno)
SELECT code, invno, ven, invdate, amon, accno, amnt, jno, saccno, ckno
FROM accnt
WHERE jno BETWEEN Mmay.jnost AND Mmay.jnofn
UNION ALL
SELECT code, invno, ven, invdate, amon, accno, amnt, jno, saccno, ckno
FROM jobcost
WHERE jno BETWEEN Mmay.jnost AND Mmay.jnofn
UNION ALL
SELECT code, invno, ven, invdate, amon, accno, amnt, jno, saccno, ckno
FROM servic15
WHERE jno BETWEEN Mmay.jnost AND Mmay.jnofn
运行代码“无法绑定多部分标识符“Mmay.jnost”时出现此错误
因此,只要“accnt”、“jobcost”或“servic15”中的记录在上述范围之一中具有 jno,就需要将其插入到 dummy 中。我如何需要更改我的代码以允许这样做?我对 SQL 比较陌生,我想我需要以某种方式使用 join 语句,但我不明白该怎么做。
【问题讨论】:
-
在每个选择中加入 Mmay,例如FROM accnt JOIN Mmay ON Jno BETWEEN Mmay.jnost AND Mmay.jnofn
标签: sql sql-server select join insert