【问题标题】:How to convert this T-SQL query to be accepted by Access db?如何将此 T-SQL 查询转换为 Access db 接受?
【发布时间】:2014-04-08 00:28:02
【问题描述】:

我正在尝试转换一个查询,以便它可以在 Access DB 上运行。出于某种原因,第二部分中的访问引发了异常

查询表达式中的语法错误'(Select count(p.id) FROM post p..."

在这里您可以看到一切都在 SQL Server 2008 上完美运行:http://www.sqlfiddle.com/#!3/388fc/1

SELECT
   c.id,
   c.CategoryName,
   c.Description,
   (SELECT count(t.id)
    FROM topic t
    WHERE t.categoryId = c.id) AS NumberOfTopics,
   (SELECT count(p.id)
    FROM post p
    JOIN topic t ON p.topicId = t.id
    WHERE t.categoryId = c.id) AS NumberOfPosts,
   (SELECT top 1 max(p.createdOn) 
    FROM post p
    JOIN topic t ON p.topicId = t.id
    WHERE t.categoryId = c.id) AS LastPostDate,
   (SELECT top 1 createdby 
    FROM post p
    JOIN topic t ON p.topicId = t.id
    WHERE t.categoryId = c.id 
    ORDER BY p.createdon DESC) AS byperson
FROM 
   category c;

谢谢

【问题讨论】:

    标签: sql sql-server ms-access ms-access-2007 ms-access-2010


    【解决方案1】:

    Access 要求您指明连接的类型:inner;剩下;或对。它不会只接受JOIN 作为INNER JOIN 的同义词。

    所以让他们都INNER JOIN 看看Access 是否有任何其他投诉。

    【讨论】:

    • 非常好,在我更改后,我刚刚将最后一部分更改为 (SELECT top 1 from P.CREATEDBY) 并且正在工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多