首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS Access SQL:枚举多对一关系的结果。

MS Access SQL:枚举多对一关系的结果。
EN

Stack Overflow用户
提问于 2014-07-09 10:36:22
回答 2查看 156关注 0票数 0

非常简单,我在MS Access中设置了一个多对一关系表,在这里,我成功地将不同的值作为单独的行提取出来。现在我需要枚举这些行。

该查询如下所示(由MS Access Designer生成-对格式设置表示歉意):

代码语言:javascript
运行
复制
SELECT DISTINCT ValidationRule.ValidationCode AS Rule, Table.Template AS Template
FROM ValidationRule RIGHT JOIN (([Table] INNER JOIN TableVersion ON Table.TableID = TableVersion.TableID) INNER JOIN ValidationScope ON TableVersion.TableVID =   ValidationScope.TableVID) ON ValidationRule.ValidationId = ValidationScope.ValidationID
GROUP BY ValidationRule.ValidationCode, Table.Template
ORDER BY ValidationRule.ValidationCode;

所以我的数据看起来是:

代码语言:javascript
运行
复制
Rule     Template
v0007_m   C 00.01
v0189_h   C 01.00
v0189_h   C 05.01
v3000_i   C 08.00

我需要向结果添加以下顺序值:

代码语言:javascript
运行
复制
Rule     Template   Sequence
v0007_m   C 00.01   1
v0189_h   C 01.00   1
v0189_h   C 05.01   2 
v3000_i   C 08.00   1

在中,我应该使用什么功能来完成这个任务?

EN

Stack Overflow用户

回答已采纳

发布于 2014-07-09 21:47:29

如果将所拥有的查询保存为一个名为qryValdationRule的单独查询,则该查询的构建将为您提供所需的服务:

代码语言:javascript
运行
复制
SELECT qryValidationRule.Rule, qryValidationRule.Template, DCount("*", 'qryValidationRule', "[Rule] = '" & qryValidationRule.Rule & "' AND [Template] <= '" & qryValidationRule.Template & "'") AS Sequence
FROM qryValidationRule
ORDER BY qryValidationRule.Rule, qryValidationRule.Template;

我们正在查找并获取数据集中具有相同或更少模板值的规则值的所有记录的计数。从本质上讲,这给了我们一个按规则分组的序列。只有当模板值在规则组之间是不同的时,这才能正常工作,这应该是正确的,因为您在跨表的交叉联接中拉出一个不同的值。它不像窗口函数那样方便或灵活,但它将为您提供所需的服务。

您还可能希望尝试此方法,这种方法可能更有效:

代码语言:javascript
运行
复制
SELECT t1.Rule, t1.Template, COUNT(t2.Template) AS Sequence
FROM qryValidationRule AS t1 INNER JOIN qryValidationRule AS t2 ON t1.Rule = t2.Rule AND t1.Template >= t2.Template
GROUP BY t1.Rule, t1.Template
ORDER BY t1.Rule, t1.Template;

编辑:添加了另一种查找相同数据的方法;由于JOINing和子查询的关系,可能会有更好的性能。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24651411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档