与Excel的ODBC数据连接显示数字列的所有1

时间:2011-11-23 16:48:42

标签: mysql dataset odbc excel-2010

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

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

我正在使用mysql,并且excel 2010。

我尝试过的事情:

1)创建新连接

2)将排名输出转换为char

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

1 个答案:

答案 0 :(得分:1)

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

如果mysql显示正确的数据,excel不会添加(SELECT @warehouse:='')到第二个子查询修复问题!我希望其他人可以从中吸取教训,因为这令人沮丧