0

我对 Access 查询有一点问题(不要问我为什么,但我不能使用真正的 SGBD 但 Access)我有一个包含 920k 记录的巨大表,我必须遍历所有这些数据并获取超过 5 个的引用同一天的时间

表 = 我的表

--------------------------------------------------------------
| 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 获取每个参考

如果有超过 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

还是行不通

我在挣扎

4

1 回答 1

0

您的 group by 子句需要包含您选择的所有项目。为什么不使用:

选择 Centre.DATESE、Centre.C_ERR_ANO、计数 (*)

按 Centre.DATESE、Centre.C_ERR_ANO 分组 HAVING COUNT (*) > 5

如果您需要其他字段,那么您可以添加它们,只要您确保相同的字段出现在选择中作为分组依据。

不知道这里的格式是怎么回事!

于 2013-09-24T13:31:37.960 回答