我对这个查询有问题:
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生成的。它应该计算Object列中每种类型的项数,但它只显示每个不同项的计数...似乎想不出该怎么做。
编辑
考虑到前两个答案,我将代码更改为以下代码,但仍然得到相同的结果:
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 Capteur
下面是上次编辑的查询给我的结果:
自动1级罩1 Capteur 1单工1
我的所有数据都包含在查询中指定的日期范围内。对不起,我不知道如何在合适的桌子上显示,我是新来的……
发布于 2011-10-21 01:59:02
查询将为每个分组依据的项目提供一行/计数。
您正在对以下内容进行分组:
GROUP BY Ordre.Objet, Avis.[Date Appel], Ordre.Objet因此,对于每个对象/日期外观组合,您将获得一个计数
发布于 2011-10-21 01:57:39
尝试将HAVING子句中的内容移动到WHERE子句。HAVING对分组的项目进行筛选,它可能会阻止查询正确计算项目的数量。
发布于 2011-10-21 20:03:16
好了,我找到了我的问题所在:
我有比我的Avis更多的命令,并不是所有的avis都附加了命令。不知何故,我的查询只计算附加了Avis的对象(因为JOIN子句?)因此,在测试时,我只是随机地将许多不同的值放入order表中的随机记录。只是碰巧我把每一个都放在有对应Avis的Ordres上...
愚蠢的我:)
尽管如此,还是要感谢大家,帮助总是会被感谢的。
https://stackoverflow.com/questions/7840051
复制相似问题