mysql - ODBC 数据连接到 excel,显示数字列全为 1

标签 mysql dataset odbc excel-2010

我有一个通过 ODBC 连接进入 excel 的 mysql 查询。此查询按降序确定每组中提取的数据的前 5 名,并为其提供排名编号(1 到 5 按组中每个唯一项的值顺序排列)。

-- 问题是当数据导入 Excel 时,“排名”字段的所有值都设置为 1(它们应该在 1 和 5 之间变化),而不是正确的数字。我已经尝试了很多东西,但无法弄清楚为什么 excel 会这样做。

我正在使用 mysql 和 excel 2010。

我尝试过的事情:

1) 创建新连接

2) 将排名输出转换为字符

3) 将排名与文本作为字符串连接起来。

4) 删除工作表并重新创建。

5) 改变sql中的列顺序

感谢您提供的任何帮助。释义查询如下。

select
rank,
center,
supervisor_id,
missed,
box,
missed_percent

from
(select
supervisor_id,
missed,
box,
missed_percent,
@ranking := if(@warehouse = center, @ranking + 1,1) as rank,
@warehouse := center as center

from
(select
  a.center,
  f.supervisor_id,
  sum(missed) as missed,
  count(box) as box,
  sum(missed) / count(box) as missed_percent,
  (SELECT @ranking:= 0) s

from
seventy_subquery_table

left join people f on a.employee_id = f.employee_id

group by
a.center,
f.supervisor_id

) m
order by center, missed_percent desc
) m2

where m2.rank <= 5
order by center, rank

最佳答案

其实我刚刚想通了!问题出在第二个包装子查询中 - 显然,与 excel 的 ODBC 连接执行逻辑上不同于在 mysql 中运行它。所以在这种情况下,某些东西在运行时可以工作,但不能通过 ODBC。

在 mysql 显示正确数据的地方,excel 没有将 (SELECT @warehouse:= '') 添加到第二个子查询解决了这个问题!我希望其他人可以从中吸取教训,因为这令人沮丧

关于mysql - ODBC 数据连接到 excel,显示数字列全为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245971/

相关文章:

python - 无法加载 CIFAR-10 数据集 : Invalid load key '\x1f'

r - 在包开发中处理数据集依赖的正确方法?

python - 无法从 Docker 连接到数据库

php - 重置 odbc_error() 的技巧

php - mysql_connect 返回 "Can' t 通过远程主机连接上的套接字连接到本地 MySQL 服务器?

mysql - 如何在 bookshelf.js 中同时插入父表和子表

用于测试非线性 SVM 的数据集

php - 插入或删除时,与 PDO 的 DB2 连接抛出一般错误 -7008

php - MYSQL 使用范围/限制计算数据的所有行和分页

mysql - 从每周编号中选择 MAX