2013-10-30 43 views
1

我已经给出了创建语句的任务,该语句创建一个表,然后从两个不同表的连接插入值。如何在一个语句中创建表和插入值

这是一个可怕的任务,只是为了养活带有数据的小型应用程序,因为它不能与视图(和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-ish源表对的循环。

如果一个VBA宏会导致一个更优雅和可重用的解决方案,这对我来说很好。

亲切的问候。

回答

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场是这样的:。

“你可能需要定义新表的主键当你 创建表,在新表中的字段继承的数据类型 和查询的基础表中每个字段的字段大小,但没有 其他字段或表属性被传输。“

+0

PK字段不是必需的,并且是应用程序逻辑所要求的。创建一个只是我的习惯 – Marco

相关问题