【发布时间】: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 的计数(这是我的主键)但没有成功:(