mysql - 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 中运行它,但它抛出错误:“从子句中的语法错误”。
解决方案
在 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
推荐阅读
- c++ - `std::promise::set_value` 修改给定值
- r - 从具有 n 个观察值的函数创建模拟
- google-sheets - 在谷歌表格中保存单元格的状态
- python - 如何检查多个文件夹并删除具有唯一文件名的任何文件?
- java - 具有等待性和 @SpyBean 的 Spring Boot 集成测试不起作用,因为 @SpyBean 始终为空
- html - 主和导航栏 div 重叠,我希望它们并排出现
- node.js - discord js如何通过降序对json文件进行排序
- keyboard - 在 Linux 上查找可用的键盘
- javascript - 删除项目客户端时列表框为空
- c# - JSON .NET 不反序列化 Refs