如何在一个语句中创建表和插入值

时间:2013-10-30 08:15:27

标签: sql vba ms-access-2010

我被赋予了创建语句的任务,该语句创建一个表,然后从两个不同表的连接中插入值。

这是一个可怕的任务,只是为一个小应用程序提供数据,因为它无法处理视图(以及该部分的SQL服务器)

带给我的是我的CREATE声明:

CREATE TABLE resultstable1_DIFF (
[Id] Counter Primary key not null,
[km] number,
[Diff] float) 

INSERT声明

Insert Into resultstable1_DIFF(km, Diff)
SELECT Round(A.km, 4), Round(X.y - A.y, 4)
FROM sourcetable_1_HQ100 as A INNER JOIN sourcetable_2 as X
ON Round(A.km, 4)  = Round(X.km, 4)

不幸的是,UNION在这里不起作用。有人能指出我正确的方向吗?我的目标是为一些50个源表对创建一个循环。

如果VBA宏会产生更优雅和可重复使用的解决方案,那么我就可以了。

亲切的问候。

1 个答案:

答案 0 :(得分:2)

我猜Access支持SELECT... INTO所以尝试使用:

SELECT Round(A.km, 4) as km, Round(X.y - A.y, 4)  as Diff
Into resultstable1_DIFF
FROM sourcetable_1_HQ100 as A INNER JOIN sourcetable_2 as X
ON Round(A.km, 4)  = Round(X.km, 4)

但这是ID字段的问题。我猜你不能这样做PK场:

  

“您可能想要为新表定义主键。当您   创建表,新表中的字段继承数据类型   和查询的基础表中每个字段的字段大小,但没有   转移其他字段或表属性。“