首页 > 解决方案 > 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, company_name)
 AS T1 
 WHERE T1.agent_id is not null and  rn <= 3;

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

标签: mysqlms-access

解决方案


在 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       

推荐阅读