ODBC соединение для передачи данных в Excel, показывающее все 1 для числового столбца - PullRequest
2 голосов
/ 23 ноября 2011

У меня есть запрос MySQL, который вытягивает в Excel через соединение ODBC. Этот запрос определяет топ-5 по группам в порядке убывания для данных, которые он извлекает, и присваивает им ранжирующий номер (от 1 до 5 в порядке значений на каждый уникальный элемент в группе).

- Проблема в том, что когда данные импортируются в Excel, все значения поля 'rank' устанавливаются на 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

1 Ответ

1 голос
/ 26 ноября 2011

Я на самом деле только что понял это!Проблема заключается во втором подзапросе обертки - очевидно, что ODBC-соединение с Excel выполняется логически иначе, чем при его запуске в MySQL.Так что в этом случае что-то может работать при запуске, но не через ODBC.

Там, где mysql показывает правильные данные, Excel не добавляет Добавление (SELECT @warehouse: = '') во второй подзапрос исправило проблему!Я надеюсь, что кто-то еще может извлечь уроки из этого, поскольку это расстраивало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...