【问题标题】:MS Access SQL - Count for each record in a recordsetMS Access SQL - 记录集中每条记录的计数
【发布时间】:2018-08-07 09:36:18
【问题描述】:

大家好,希望能帮到你!

我已经为这个 Query 苦苦挣扎了一段时间,我相信修复它会相对简单!

我使用查询返回一个表中的所有值,以及一个表中的投票计数和另一个表中的 cmets 计数。

我已经开始加载单个记录了

DCount('[query_id]','[comments]','[query_id]=" & Target & "')

但是,如果我添加类似于返回每个 query_id 的查询的内容,则计数对它们都显示相同。

我可以使用与 DCount 不同的函数来实现此目的吗?

我之前的问题是使用计数,并且由于查询具有非唯一数据,因此它正在计算一个人的所有投票(即,如果我投了 6 票,对于我的用户 ID 附加到的任何记录,计数将显示为 6 )

很高兴提供有关查询的更多详细信息。

【问题讨论】:

  • 首先在 VBA 中,您使用 " 双引号作为字段/表名等字符串变量所以试试DCount("[query_id]","[comments]","[query_id]=" & Target )
  • 抱歉,这些 cmets 来自我的 Excel 查询,它可以很好地选择单个记录(与语法错误相关的双引号)澄清一下,我在上面发布的 DCount 按预期工作,问题在于我没有指定记录 ID(目标变量) - 所以我认为 DCount 不合适。
  • DCount 计算第一个参数字段名称中的值的数量,在表第二个参数中。如果您省略第三个参数,您将获得表中 所有行 的计数。如果这与过滤后的情况相同,即[query_id]= 123,则 DCount 不适用于您。 Here你可以了解更多关于这个和类似的VBA函数
  • provide 样本数据和预期结果。如果你想要多条记录,你可能需要 GROUP BY 和 Count()。 How to ask a good SQL question.
  • 谢谢您,您对 Count() 和 GROUP BY 的看法都是正确的,我已经设法通过子选择语句解决了这个问题 - 我已经添加了我的答案,但为问题的措辞道歉不良。下次我会阅读您刚刚发送给我的链接。谢谢!

标签: sql excel vba ms-access


【解决方案1】:

你可能会喜欢这样的东西:

DCount("*","[comments]","[person_id] = " & [Target] & "")

其中 [Target] 是保存另一个表的 PersonId 的字段。

【讨论】:

  • 我可能没有很好地表达我的问题,但我实际上已经设法使用子 SELECT 语句找到了解决方案(SELECT COUNT(*) FROM vote WHERE query_id = issues.query_id) AS voteCount, (SELECT COUNT(*) FROM comments WHERE query_id = issues.query_id) AS commentCount
【解决方案2】:

我可能没有以最好的方式提出问题,但通过在 SELECT 子句中使用子选择语句,我设法得到了我期望的结果

以防其他人不知道如何表达或提出问题,Andre 对我上面的原始问题发表了非常有用的评论,建议使用以下链接。

How to ask a good SQL question

SELECT issues.query_id, issues.query_raised_by, issues.query_raised_date, issues.query_summary, issues.query_status, issues.query_status_date, issues.query_detail, issues.query_response
(SELECT COUNT(*) FROM vote WHERE query_id = issues.query_id) AS voteCount, 
(SELECT COUNT(*) FROM comments WHERE query_id = issues.query_id) AS commentCount

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2015-01-31
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多