【问题标题】:SQL count query not workingSQL 计数查询不起作用
【发布时间】:2011-10-20 17:52:21
【问题描述】:

我对这个查询有疑问:

SELECT Ordre.Objet, Count(Ordre.Objet) AS CompteDeObjet
FROM Ordre INNER JOIN Avis ON Ordre.[Ordre SAP] = Avis.[Ordre SAP]
GROUP BY Ordre.Objet, Avis.[Date Appel], Ordre.Objet
HAVING (((Avis.[Date Appel])>#8/1/2011# And (Avis.[Date Appel])<#10/20/2011#) AND ((Ordre.Objet) Is Not Null));

我使用 Access 2003 生成的。它应该计算“对象”列中每种项目的数量,但它只显示每个不同项目的计数... 似乎无法弄清楚如何进行这项工作。

[编辑]

考虑到前两个答案,我将代码更改为以下,但仍然得到相同的结果:

SELECT Ordre.Objet, Count(Ordre.Objet) AS CompteDeObjet
FROM Ordre INNER JOIN Avis ON Ordre.[Ordre SAP] = Avis.[Ordre SAP]
WHERE (((Avis.[Date Appel])>#8/1/2011# And (Avis.[Date Appel])<#10/20/2011#) AND ((Ordre.Objet) Is Not Null))
GROUP BY Ordre.Objet; 

[编辑#2] 这是我的数据示例:

Ordre SAP 对象

11147212 单工

11147214 单纯形

11147215 单纯形

11147216 单纯形

11147225 单纯形

11147240 自动级别

11147243

11147247 天篷

11147259 俘虏

这是上次编辑的查询给我的:

自动级别 1 天篷 1 俘虏 1 单纯形 1

我的所有数据都包含在查询中指定的日期范围内。 抱歉,我不知道如何在合适的表格中显示这个,我是新来的...

【问题讨论】:

  • 你为什么要按Objet分组两次?
  • 没关系,改成Count(Ordre.[Ordre SAP])吧。
  • @HansUp 我在编辑中更改了它
  • @ConradFrix 我尝试更改为 Ordre SAP 的计数(这是我的主键)但没有成功:(

标签: sql ms-access count


【解决方案1】:

查询将为您 GROUP BY 的每个项目提供一行/计数。

您正在分组:

 GROUP BY Ordre.Objet, Avis.[Date Appel], Ordre.Objet

因此,每个 Objet / Date Appel 组合都会得到一个计数

【讨论】:

  • 好的,谢谢。我将代码更改为 'SELECT Ordre.Objet, Count(Ordre.Objet) AS CompteDeObjet FROM Ordre INNER JOIN Avis ON Ordre.[Ordre SAP] = Avis.[Ordre SAP] WHERE (((Avis.[Date Appel])> #8/1/2011# And (Avis.[Date Appel])
【解决方案2】:

尝试将HAVING 子句中的内容移至WHERE 子句。 HAVING 过滤分组项目,它可能会阻止查询正确计算项目。

【讨论】:

  • 是的。感觉像是一个疯狂的猜测,但我也打算提出这个建议。即使它不能解决这个问题,最好将这个条件放在 where 子句中(我很惊讶它甚至可以这样工作)。
  • 简单地将HAVING 更改为WHERE 会导致语法错误。更改为WHERE 参数是否比这更复杂?
【解决方案3】:

好的,所以我弄清楚了我的问题是什么:

我拥有的订单比我拥有的 Avis 多得多,而且并非所有的 avis 都附有订单。我的查询以某种方式只计算附加了 Avis 的对象(因为 JOIN 子句?) 所以在测试时,我只是在订单表中随机放置了许多不同的值来随机记录。碰巧我把每个都放在了具有相应 Avis 的 Ordres 上......

我真傻:)

谢谢大家,总是很感激帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-15
    • 2011-04-13
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多