将查询保存到表中

Posted

技术标签:

【中文标题】将查询保存到表中【英文标题】:Saving a query into a Table 【发布时间】:2016-03-10 10:03:02 【问题描述】:

我搜索了一个我遇到的问题,但我发现部分答案我无法完全理解。我正在使用 access2010。

简单来说,我想过滤一个表[newsearch],以根据我的 WHERE 条件显示结果。 我可以使用 SELECT 和 WHERE 条件并通过查询获得结果,但我希望将此结果保存到 [newsearch],这意味着我希望此 [newsearch] 仅包含此查询的结果。

我尝试使用 SELECT INTO,但由于我的源和目标是 [newsearch],它不起作用。

我现在运行的查询是:

strSQL = "SELECT * FROM [newsearch] WHERE [newsearch].[" & Me.Combo17 & "] = '" & Me.Text18 & "'"
Set qdef = db.CreateQueryDef("User query results", strSQL)
qdef.close
Set qdef = Nothing
Set db = Nothing
DoCmd.OpenQuery "User query results", acViewNormal

这会在查询表中为我提供结果,但我希望将其保存到 [newsearch]

我该怎么做?

【问题讨论】:

SELECT SOURCE.Field1, SOURCE.Field2 INTO TABLEA FROM SOURCE WHERE SOURCE.field3=xyz 抱歉,我的问题有误。我已经尝试过了,但它不起作用,因为 source 和 Destination 都是 [newsearch] 。所以你的代码是:SELECT * INTO [newsearch] FROM [newsearch] WHERE [newsearch].field3=xyz。它不会工作 所以你想把它重新添加到同一个表中吗?还是它们在不同的数据库中? 我想将它添加回同一个数据库中的同一个表中。但是该表应该只包含结果,所有以前的记录都必须被删除(所以没有更新)并且这个新的查询结果必须被放入。 【参考方案1】:

select into 查询创建一个表,但显然你不能创建一个已经存在的表。你有两个选择:

    不要选择你需要的,而是从你的表中删除那些你不需要的记录:delete from [newsearch] where field3<>xyz

    您可以使用select into创建一个新表,然后删除[newsearch],然后将新表重命名为[newsearch]

【讨论】:

完全正确 :) 问题具有误导性,只需删除您不需要的内容 :) 无法删除。但是第二种方法被证明是完美的!!!非常感谢大家...我删除了源表并用旧名称重命名了新表。完美。 在这种情况下,请将答案标记为已接受,以向观众表明问题已结束。

以上是关于将查询保存到表中的主要内容,如果未能解决你的问题,请参考以下文章

您可以安排 BQ 查询每天运行并保存到表中吗? [复制]

T-SQL:生成数字组合并保存到表中

sql 如何保存 查询语句 到表中 到数据库中

将数据字段附加到保存到表中的记录

Bigquery - 如何将 QueryResponse 保存到表中?

将表单条目保存到变量并添加到表中