Crosstab
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!
Discussão (1)
Carregando comentários...