fsilvarib 0 Denunciar post Postado Setembro 27, 2011 Olá galera! Estou com uma baita dificuldade de gerar crosstab, gostaria que alguém pudesse dar uma luz! Vamos a brincadeira. Tenho as seguintes tabelas. USERS +---------------+ | id | NOME | +---------------+ | 1 | FULANO1 | +---------------+ FILES +---------------+-----------+-----------+-----------+ | id | USER_ID | FILE_DATE | FILE_NAME | FILE_TYPE | +---------------+-----------+-----------+-----------+ | 1 | 1 | 2011-04-01| FILE1.XLS | XLS | +---------------+-----------+-----------+-----------+ | 2 | 1 | 2011-05-01| FILE2.PDF | PDF | +---------------+-----------+-----------+-----------+ | 3 | 1 | 2011-05-01| FILE2.XLS | XLS | +---------------+-----------+-----------+-----------+ | 4 | 1 | 2011-06-01| FILE3.PDF | PDF | +---------------+-----------+-----------+-----------+ A QUERY que eu estou fazendo é essa: SELECT u.NOME, f.FILE_DATE,GROUP_CONCAT(f.FILE_NAME) as files_month FROM FILES as f join USERS as u on (f.USER_ID = U.ID) GROUP BY f.FILE_DATE ORDER BY f.FILE_DATE DESC Aí o resultado que está retornando é esse: +---------+-----------+---------------------+ | NOME | FILE_DATE | FILES_MONTH | +---------+-----------+---------------------+ | FULANO1 | 2011-04-01| FILE1.XLS | +---------+-----------+---------------------+ | FULANO1 | 2011-05-01| FILE2.PDF,FILE2.XLS | +---------+-----------+---------------------+ | FULANO1 | 2011-06-01| FILE3.PDF | +---------+-----------+---------------------+ Não achei muito complicado em fazer isso. Mas o que eu preciso na realidade é retornar 2 colunas para os arquivos, a forma que preciso deveria ficar assim: +---------+-----------+-----------+-----------+ | NOME | FILE_DATE | FILES_XLS | FILES_PDF | +---------+-----------+-----------+-----------+ | FULANO1 | 2011-04-01| FILE1.XLS | | +---------+-----------+-----------+-----------+ | FULANO1 | 2011-05-01| FILE2.PDF | FILE2.XLS | +---------+-----------+-----------+-----------+ | FULANO1 | 2011-06-01| | FILE3.PDF | +---------+-----------+-----------+-----------+ É isso aí que eu não estou conseguindo. Desculpa o tamanho do post, mas essa foi a melhor forma que eu consegui expressar o meu pequeno problema.(kkkkkkk) Agradeço a atenção de todos. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 27, 2011 Tente o CASE, não sei se existe uma solução mais automática. Compartilhar este post Link para o post Compartilhar em outros sites