【发布时间】:2020-01-18 23:07:32
【问题描述】:
如果我希望通过以下两个表格合理地总结一个问题,我将不胜感激:
Table1 包含主要原始数据,其中 FieldA 与 FieldB 中的特定项目有关系。
FieldB 中的项目相对于 FieldA 中的每个唯一项目都是唯一的 - 也就是说,猫、狗、兔子、鸡只会在 FieldA 的“a”组下出现一次(它们可以出现在该字段的其他位置) . FieldA 中的 b、c 和 d 项也是如此(所有 FieldB 项仅针对每个项出现一次)。
Table2 列出了 Table1、FieldB 中每个唯一项的总计数,由以下查询生成:
qryCount:
select FieldB, count(FieldB) AS FCount
from Table1
GROUP BY FieldB;
我的问题: 用户在 Table1 中输入来自 FieldA 的唯一值,然后查询应返回 FieldB (Table1) 中实现完全匹配的所有唯一值,相对于 Table2 中的相应 FCount 总数。
例如
- 如果用户输入“a,b,d”,则查询输出“cat, dog, rabbit, ferret”,因为 cat(3)、dog(2)、rabbit(1) 和 ferret(1) 的总数被满足。
- 如果用户输入“a,c”,则查询将输出“chicken,rabbit”,因为 chicken(2) 和 rabbit(1) 的总数已达到。
- 如果用户输入“b”,则查询不会返回任何内容,因为相应的 FieldB 项目也存在于其他地方。
我确实在 Excel 中使用 VBA 解决了这个问题(构建一个命中表并查看是否满足用户输入值的相应总计数),但尽管我在使用 Access SQL (2007) 方面确实有一些经验,但我'正在努力将这个想法从 VBA 转换。我将不胜感激。
【问题讨论】:
-
当然
a, b, d的计数也满足rabbit和ferret,因为在这两种情况下都有1? -
抱歉,太晚了——是的,兔子和雪貂的条件都满足了。文字已更新。
-
a,c同样应该返回rabbit。
标签: sql ms-access-2007