我对Access查询有一点问题(不要问我为什么但是我不能使用真正的SGBD而是Access) 我有一张像920k记录的大桌子 我必须循环遍历所有这些数据并获取在同一天发生超过5次的ref
table = myTable
--------------------------------------------------------------
| id | ref | date | C_ERR_ANO |
--------------------------------------------|-----------------
| 1 | A12345678 | 2012/02/24 | A 4565 |
| 2 | D52245708 | 2011/05/02 | E 5246 |
| ... | ......... | ..../../.. | . .... |
--------------------------------------------------------------
所以为了恢复它,我有900000+记录 在相同的日期有重复(哦,顺便说一下,我忘了添加另一个有C_ERR_ANO作为名称的列)
所以我必须循环遍历所有这些行,根据日期和errorNumber
获取每个ref如果有超过5次使用相同的errorNumber,我必须抓住它们并在结果中显示
我最终使用了这个查询:
SELECT DISTINCT Centre.REFERENCE, Centre.DATESE, Centre.C_ERR_ANO
FROM Centre INNER JOIN (SELECT
Centre.[REFERENCE],
COUNT(*) AS `toto`,
Centre.DATESE
FROM Centre
GROUP BY REFERENCE
HAVING COUNT(*) > 5) AS Centre_1
ON Centre.REFERENCE = Centre_1.REFERENCE
AND Centre.DATESE <> Centre_1.DATESE;
但这个查询很好 我试过了
SELECT DATESE, REFERENCE, C_ERR_ANO, COUNT(REFERENCE) AS TOTAL
FROM (
SELECT *
FROM Centre
WHERE (((Centre.[REFERENCE]) NOT IN (SELECT [REFERENCE]
FROM [Centre] AS Tmp
GROUP BY [REFERENCE],[DATESE],[C_ERR_ANO]
HAVING Count(*)>1 AND [DATESE] = [Centre].[DATESE]
AND [C_ERR_ANO] = [Centre].[C_ERR_ANO]
AND [LIBELLE] = [Centre].[LIBELLE])))
ORDER BY Centre.[REFERENCE], Centre.[DATESE], Centre.[C_ERR_ANO])
GROUP BY REFERENCE, DATESE, C_ERR_ANO
仍然没有工作
我正在捣乱
答案 0 :(得分:0)
您的group by子句需要包含您选择中的所有项目。为什么不使用:
选择Centre.DATESE,Centre.C_ERR_ANO,Count(*)
Group by Centre.DATESE,Centre.C_ERR_ANO 有计数(*)&gt; 5
如果您需要其他字段,则可以添加它们,只要您确保选择中的相同字段显示为组。
不知道这里的格式是怎么回事!