0

当我运行它时,我收到一条错误消息。你知道为什么吗?我使用 Access 设计视图构建了它。

SELECT  [Sales structure].Cluster ,
        [Sales structure].Country ,
        [Transaction details].[Sales company code] ,
        [Sales structure].[Sales company name] ,
        YEAR([Transaction details].[YYYY-MM-DD]) AS [Year] ,
        MONTH([Transaction details].[YYYY-MM-DD]) AS [Month] ,
        SUM([Transaction details].[Sales volume LOC]) AS Total ,
        [Transaction details].[Currency code] ,
        Currencies.[CUR/EUR] AS [Currency rate]
FROM    Items ,
        Currencies
        RIGHT JOIN ( [Sales structure]
                     RIGHT JOIN [Transaction details] ON [Sales structure].[Sales company code] = [Transaction details].[Sales company code]
                   ) ON Currencies.[Currency code] = [Transaction details].[Currency code]
GROUP BY [Sales structure].Cluster ,
        [Sales structure].Country ,
        [Transaction details].[Sales company code] ,
        [Sales structure].[Sales company name] ,
        YEAR([Transaction details].[YYYY-MM-DD]) ,
        MONTH([Transaction details].[YYYY-MM-DD]) ,
        [Transaction details].[Currency code] ,
        Currencies.[CUR/EUR]
HAVING  ( ([Transaction details].[Currency code] = [Currencies].[Currency code]) )
ORDER BY YEAR([Transaction details].[YYYY-MM-DD]) ,
        MONTH([Transaction details].[YYYY-MM-DD]) ;
4

1 回答 1

3

和表之间没有JOIN条件。它们只是用逗号介绍。ItemsCurrencies

MS Access 对连接非常讲究。您可能还希望在每个联接周围加上括号,因为它可能对缺少括号有疑问,即使没有括号查询在语法上是正确的。

我强烈建议您忘记您可以使用逗号并通过在子句,中放置连接条件来连接表。WHERE这是老式的,应该放弃!请开始使用通过子句引入(在第一个表之后)并通过JOIN子句连接的 ANSI SQL 连接ON。这有很多令人信服的原因——如果你想了解更多,只需在线搜索。

于 2013-06-03T18:45:35.453 回答