MySql到MS Access查询转换

MySql到MS Access查询转换,mysql,ms-access,Mysql,Ms Access,我有一个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

我有一个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中运行它,但它抛出了错误:from子句中的语法错误

在Microsoft Access中,我们可以尝试在WHERE子句中使用前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       

这是因为这些SQL引擎具有完全不同的语法。是的,这就是为什么我希望有人帮助我解决语法错误的原因,我无法解决您需要转换的问题?有几种方法可以从MS Access使用MySQL。见保尔特。是的,我只想在MS Access中执行此操作。您到底是如何尝试修复语法问题的?你为什么不说明查询应该做什么?