Соединение данных ODBC с Excel, показывающее все 1 для числового столбца

У меня есть запрос mysql, который загружается в excel через соединение ODBC. Этот запрос определяет первые 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

person JoshG    schedule 23.11.2011    source источник
comment
Вы проверили правильность данных в базе данных? Мало того, что значения на самом деле отличаются от 1, но чтобы увидеть структуру таблицы и убедиться, что вы запрашиваете правильную таблицу или поле?   -  person owen gerig    schedule 23.11.2011
comment
Эй, Оуэн, ранг (что неверно) — это то, что генерируется самим запросом, а не сохраняется в таблице. Когда я запускаю запрос, все значения верны, а также правильно отображаются, когда я вручную экспортирую в Excel.   -  person JoshG    schedule 23.11.2011
comment
пожалуйста, опубликуйте код тогда. конкретно запрос.   -  person owen gerig    schedule 23.11.2011
comment
Запрос отлично работает, но я опубликовал его и для вас.   -  person JoshG    schedule 23.11.2011
comment
извините, я не уверен. особенно если запрос работает. Единственное, что я могу сказать для устранения неполадок, это попробовать более новую или старую версию Excel. Я проголосую за ваш пост в надежде, что это принесет вам больше просмотров.   -  person owen gerig    schedule 23.11.2011
comment
Спасибо за помощь, Оуэн. Я на самом деле только что понял это! Проблема заключается во втором подзапросе обертки. По-видимому, соединение ODBC с Excel выполняется логически иначе, чем при его запуске в mysql. Так что в этом случае что-то может работать при запуске, но не через ODBC. Таким образом, там, где mysql показывает правильные данные, excel не добавляет (SELECT @warehouse:= '') ко второму подзапросу, исправив проблему! Я надеюсь, что кто-то еще может извлечь из этого уроки, поскольку это было неприятно. Я опубликую эту же информацию, когда SO позволит мне самостоятельно ответить на мой пост.   -  person JoshG    schedule 24.11.2011


Ответы (1)


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

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

person JoshG    schedule 25.11.2011