【问题标题】:MS Access use table field as query criteriaMS Access 使用表字段作为查询条件
【发布时间】: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/…

标签: ms-access ms-query


【解决方案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?谢谢@@~
  • 为此发布另一个问题,我们不想在同一个线程上用多个问题混淆这个问题。请务必发布您将要使用的实际查询。
  • 好的!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多