MySql 到 MS Access 查询转换 [重复]

Posted

技术标签:

【中文标题】MySql 到 MS Access 查询转换 [重复]【英文标题】:MySql to MS Access query conversion [duplicate] 【发布时间】:2018-06-03 20:04:02 【问题描述】:

我有一个 mysql 查询,我想在 MS Access 中使用它。

SELECT company_name, agent_id FROM
( SELECT company_name, agent_id, @rn := IF(@prev = agent_id, @rn + 1, 1) 
  AS rn, @prev := agent_id FROM users 
  JOIN (SELECT @prev := NULL, @rn := 0) AS vars 
  ORDER BY agent_id DESC, company_name)
 AS T1 
 WHERE T1.agent_id is not null and  rn <= 3;

我一直试图在 Access 中运行它,但它抛出错误:“从子句中的语法错误”。

【问题讨论】:

那是因为这些 SQL 引擎的语法完全不同。 是的,这就是为什么我希望有人帮助我解决语法错误,我无法解决问题 你一定需要转换吗?有一些方法可以从 MS Access 使用 MySQL。见this。 @PaulT。是的,我只想在 MS Access 中这样做 您究竟尝试解决什么语法问题?你为什么不描述查询应该做什么? 【参考方案1】:

在 Microsoft Access 中,我们可以尝试在 WHERE 子句中使用“TOP n”相关子查询。

我会尝试这样的:

 SELECT t.company_name
      , t.agent_id
   FROM [users] AS [t]
  WHERE t.company_name IN
        ( SELECT TOP 3 u.company_name
            FROM [users] AS [u]
           WHERE u.agent_id = t.agent_id
           ORDER
              BY u.company_name
        )
  ORDER
     BY t.agent_id DESC
      , t.company_name       

【讨论】:

以上是关于MySql 到 MS Access 查询转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

MS Access to MySQL 转换帮助(巨表)

MS Access 2007 重命名自定义组中的快捷方式以更改对象的名称

将 MySQL 转换为 MS Access

在 MS Access 查询中计算数字的幂

在 MS Access SQL 查询中从普通日期转换为 unix 纪元日期

MS Access VBA循环查询和重命名文件