MS Access“不支持 JOIN 表达式”

问题描述 投票:0回答:1

有人可以帮我理解为什么 Access 不接受我的查询吗?我已经无计可施了。

SELECT
    NCR.Stage
    , AG.ID AS AgeGroup
    , Count(*) AS AgeGroupCount
FROM (
    qry1 AG
    LEFT JOIN qry1 AGi ON (
        AG.ID = AGi.ID + 1
    )
)
LEFT JOIN qry2 AS NCR ON (
    AG.AgeGroupLowerLimit <= NCR.Age
    AND (
        AGi.ID IS NULL
        OR AGi.AgeGroupLowerLimit > NCR.Age
    )
)
GROUP BY
    NCR.Stage
    , NCR.AgeGroup
;

问题与第二个左连接有关,qry2。 我在这里发帖是因为我希望它会是一些非常简单的东西,我只是不知道要寻找什么,当然 Access 本身是非常没有帮助的。 谢谢!

ms-access
1个回答
0
投票

我想,表情

(  AGi.ID IS NULL
        OR AGi.AgeGroupLowerLimit > NCR.Age
    )

您引用的字段无法在另一个表(查询的一部分)中引用。 您可以尝试将此条件移至 WHERE 子句。

试试这个

SELECT
    NCR.Stage
    , AG.ID AS AgeGroup
    , Count(*) AS AgeGroupCount
FROM (
    qry1 AG
    LEFT JOIN qry1 AGi ON (
        AG.ID = AGi.ID + 1
    )
)
LEFT JOIN qry2 AS NCR ON (
    AG.AgeGroupLowerLimit <= NCR.Age
)
WHERE (
        AGi.ID IS NULL
        OR AGi.AgeGroupLowerLimit > NCR.Age
    )
GROUP BY
    NCR.Stage
    , NCR.AgeGroup
;

此外,在 SELECT 子句中

AG.ID AS AgeGroup
- 必须成为 GROUP BY 的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.