Usuário com melhor resposta
PIVOT

Pergunta
-
Duvida no uso do PIVOT .
Consigo usar o PIVOT no mysql 14.14 Distrib 5.1 ? Estou tentando fazer esta consulta , mas sem sucesso.OBS: estou querendo selecionar o NOme do aluno ,a MEDIA das notas no periodo 1,2,3,4
SELECT a.nome AS 'NOME'
FROM dmMatriculas m INNER JOIN dmMatriculasAlunos a ON a.aluno_sk = m.aluno_sk
INNER JOIN dmMatriculasDados d ON d.matricula_sk = m.matricula_sk
INNER JOIN dmMatriculasNotas n ON n.matricula_sk = m.matricula_sk
WHERE d.regional like 'NOMEREGIONAL'
and d.unidade like 'graduaçao'
and d.filial like ' NOMEFILIAL '
and d.curso like 'NOMECURSO'
and a.nome like 'NOMEALUNO'
GROUP BY d.periodo
PIVOT (
SUM(n.nota) / COUNT(distinct n.disciplina) FOR d.periodo IN (1,2,3,4)
)
- Editado Coosk87 terça-feira, 4 de dezembro de 2012 17:15
Respostas
-
Olá...
O comando PIVOT, se não me engano, é exclusividade do SQLServer.
Olha esse exemplo:
Criando tabela e dados...
CREATE TABLE properties ( id INT(11) NOT NULL, item_id INT(11) DEFAULT NULL, prop VARCHAR(255) DEFAULT NULL, value VARCHAR(255) DEFAULT NULL, PRIMARY KEY (id) ); INSERT INTO properties VALUES (1, 1, 'color', 'blue'), (2, 1, 'size', 'large'), (3, 2, 'color', 'orange'), (4, 3, 'size', 'small'), (5, 4, 'color', 'violet'), (6, 5, 'color', 'green');
O Pivot em si...
SELECT item_id, MAX(IF(prop = 'color', value, NULL)) AS color, MAX(IF(prop = 'size', value, NULL)) AS size FROM properties GROUP BY item_id;
Espero ter lhe ajudado...
Abraço !
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 13:15
Todas as Respostas
-
Olá...
O comando PIVOT, se não me engano, é exclusividade do SQLServer.
Olha esse exemplo:
Criando tabela e dados...
CREATE TABLE properties ( id INT(11) NOT NULL, item_id INT(11) DEFAULT NULL, prop VARCHAR(255) DEFAULT NULL, value VARCHAR(255) DEFAULT NULL, PRIMARY KEY (id) ); INSERT INTO properties VALUES (1, 1, 'color', 'blue'), (2, 1, 'size', 'large'), (3, 2, 'color', 'orange'), (4, 3, 'size', 'small'), (5, 4, 'color', 'violet'), (6, 5, 'color', 'green');
O Pivot em si...
SELECT item_id, MAX(IF(prop = 'color', value, NULL)) AS color, MAX(IF(prop = 'size', value, NULL)) AS size FROM properties GROUP BY item_id;
Espero ter lhe ajudado...
Abraço !
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 13:15
-