2011-11-23 1 views
2

ODBC 연결을 통해 Excel로 가져 오는 mysql 쿼리가 있습니다. 이 쿼리는 끌어 오는 데이터의 내림차순으로 그룹당 상위 5를 결정하고 순위 번호 (그룹의 각 고유 항목 당 값의 순서대로 1부터 5까지)를 제공합니다.ODBC 데이터 연결이 엑셀로 번호 열에 대해 모두 1을 표시합니다.

- 데이터를 Excel로 가져올 때 올바른 숫자 대신 '순위'필드의 모든 값이 1 (1에서 5 사이의 값이 달라야 함)로 설정됩니다. 나는 여러 가지 일을 시도했지만, 왜 이런 일을하는 지 알 수 없다.

내가 MySQL을 사용하고, 엑셀있어 내가 해봤

것들 2010 :

1) 문자로 순위 출력을 주조 새로운 연결

2) 만들기

3) 순위를 텍스트와 문자열로 연결.

4) 워크 시트를 삭제하고 다시 작성하십시오. 당신이 제공 할 수있는 도움에 대한 SQL

감사의 열 순서를 변경

5). 의역을 묻는 질문은 아래와 같습니다.

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 
+0

데이터가 정확한지 확인 했습니까? 값이 실제로 1과 다르다는 것뿐만 아니라 테이블 구조를보고 올바른 테이블이나 필드를 쿼리하는지 확인하십시오. –

+0

Hey Owen, 순위 (올바르지 않은 것)는 쿼리 자체에서 생성되며 테이블에 저장되지 않습니다. 쿼리를 실행하면 모든 값이 정확하고 Excel로 수동으로 내보낼 때 올바르게 표시됩니다. – JoshG

+0

일부 코드를 게시하십시오. 특히 쿼리. –

답변

1

나는 실제로 그것을 알아 냈습니다. 문제는 두 번째 래핑 서브 쿼리 내입니다 - 명백하게 ODBC 연결이 Excel과 논리적으로 다르게 실행되어 mysql에서 실행됩니다. 따라서이 경우 ODBC를 통해 실행될 때 작동 할 수 있지만 아니요.

여기서 mysql은 올바른 데이터를 보여 주며 Excel은 두 번째 하위 쿼리에 추가 (SELECT @warehouse : = '')하여 문제를 해결하지 않았습니다! 나는 다른 사람들이 이것을 실망스럽게 배울 수 있기를 바랍니다

관련 문제