我被赋予了创建语句的任务,该语句创建一个表,然后从两个不同表的连接中插入值。
这是一个可怕的任务,只是为一个小应用程序提供数据,因为它无法处理视图(以及该部分的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宏会产生更优雅和可重复使用的解决方案,那么我就可以了。
亲切的问候。
答案 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场:
“您可能想要为新表定义主键。当您 创建表,新表中的字段继承数据类型 和查询的基础表中每个字段的字段大小,但没有 转移其他字段或表属性。“