MS Access 使用表字段作为查询条件

Posted

技术标签:

【中文标题】MS Access 使用表字段作为查询条件【英文标题】:MS Access use table field as query criteria 【发布时间】:2015-07-31 09:54:58 【问题描述】:

我有一个问题。 是否可以使用一个表作为查询条件来计算另一个表中有多少项?

我有两张桌子。表 1 是查询条件。表 2 是一个包含许多数据的表。

我想要一个新表或插入到现有表中,如下图所示。

使用表 1 中的条件计算表 2 中的项目数。 我可以多次运行查询来统计不同年份的数据。 所以主要的问题是如何使用另一个表作为标准来计算项目。

我不知道如何实现这一点。希望你能帮我解决这个问题。 非常感谢您的帮助>"

【问题讨论】:

不,您不能在计算字段中引用外部表。查询有什么问题? 我只知道一一查询。就像为 000-009 创建一个查询一样。另一个是 010-019。但是我不可能创建超过 1000 个查询@@ 是时候学习如何设计表和编写查询了 :) 开始使用外键/链接键链接表。即如果 table1 有 C1,table2 也必须代表 c1 而不是 a1 哦,天哪...我知道如果我在表 2 中添加一个键,它会容易得多。但是没有别的办法吗?...我将在表二中拥有超过 500000 条数据... 也许我应该使用 DCount 函数?但是还是不知道怎么用...@@ support.office.com/en-in/article/… 【参考方案1】:

以下查询是我能为您找到的最接近的查询。 C5 和 C6 的行将丢失,因为它们不存在任何值。

TRANSFORM Nz(Count([number]),0) AS CountValue
SELECT Table1.ID
FROM Table1, Table2
WHERE (((Table2.number) Between [table1].[start] And [table1].[end]))
GROUP BY Table1.ID
PIVOT DatePart("yyyy",[ndate]);

产量:

ID  2000    2001
C1  2       0
C2  2       0
C3  1       0
C4  0       2
C7  1       0

很可能对于较大的数据集,此答案可能会因缺少明确的连接而产生一些不正确的值,但希望它为您指明正确的尝试方向,一旦您将适当的连接合并到您的表中。

【讨论】:

哇!!!!!!!!!!!!这正是我想要的!谢谢你的指导!我可以再问一个问题。有没有办法根据ID将结果写回表1?谢谢@@~ 为此发布另一个问题,我们不想在同一个线程上用多个问题混淆这个问题。请务必发布您将要使用的实际查询。 好的!感谢您的帮助!

以上是关于MS Access 使用表字段作为查询条件的主要内容,如果未能解决你的问题,请参考以下文章

MS Access SQL:使用另一个表中的Sum更新连接查询

MS ACCESS 2016 - 使用 Null 进行查询的标准

如何在 MS Access 2007 中使用查询作为报告源?

在列表框 ms-access 2013 VBA 中将多个不同的字段作为列表项返回

MS Access 参数查询导致错误

在 sql (MS-Access) 中编写分组查询