查询没有重复记录的访问表结果
Posted
技术标签:
【中文标题】查询没有重复记录的访问表结果【英文标题】:Query for Access Table results with no duplicate Records counted 【发布时间】:2021-07-19 18:53:30 【问题描述】:我目前正在尝试根据两个字段查询一个表,一个带有日期,另一个带有要计算的记录。查询的结果将在一列中以数字(一月 = 1、二月 = 2 等)的形式列出月份,另一列将列出单个 UNIQUE 记录的总数。我有以下查询;
SELECT DISTINCT Month([Date Received]) AS [Month], Count([1 TeamTracking].[Asset #]) AS [CountOfAsset #] FROM [1 TeamTracking] GROUP BY Month([Date Received]);
为了测试并确保我有正确的数字,我将数据导出到 Excel 文件,并根据日期和资产# 字段删除了重复项。当月可以有多个重复的资产编号,其他月份可以有相同的资产编号。我只想每月计算一次资产 # 而不是该月的任何重复项。如果是在不同的月份,则应重新计算。例如,这是我期望的查询结果:
1 团队跟踪表:
结果:
我试过了,只是没有得到正确的数字。我在属性字段中都尝试过将唯一值和记录设置为是,也没有运气。任何援助将不胜感激。谢谢。
【问题讨论】:
您已经提出了完全相同的问题:***.com/questions/68442908/… 并收到了答复。你为什么要删除那个问题? 我更改了这个问题中一些更能反映我的数据库的信息,我也更改了我添加的图片。不知道我是否可以在原始问题中更改它并决定将其删除。查询也不起作用。 【参考方案1】:这需要一个嵌套子查询,它首先将数据整合到唯一的记录中。然后,该查询是计算记录的外部查询的来源。
假设日期总是每个月的第一天并且数据是多年的,请考虑:
SELECT DateReceived, Count(*) AS Count FROM (
SELECT DISTINCT DateReceived, IDnum FROM Tracking)
GROUP BY DateReceived;
如果日期并不总是月初且数据是多年的,请考虑:
SELECT YearMo, Count(*) AS Count FROM (
SELECT DISTINCT Format(DateReceived, "yyyymm") AS YearMo, IDnum FROM Tracking)
GROUP BY YearMo;
如果数据不是多年的:
SELECT Month, Count(*) AS Count FROM (
SELECT DISTINCT Month(DateReceived) AS Month, IDnum FROM Tracking)
GROUP BY Month;
强烈建议不要在命名约定中使用空格或标点符号/特殊字符,也不要使用保留字作为名称。如果有,必须用 [ ] 括起来。
【讨论】:
以上是关于查询没有重复记录的访问表结果的主要内容,如果未能解决你的问题,请参考以下文章