Re: [firebase-br] Cross Table alguém tem alguma experiência?

edcley em eletroacre.com.br edcley em eletroacre.com.br
Qua Nov 22 11:58:32 -03 2006


camarada esse seria  um exemplo de como fazer um cross com sql simples
esse select traz a média de todos os alunos de uma determinada turma no ano
de 2006, detalhe ele traz as disciplinas como colunas e as médias como
linhas, explicando melhor, esse subselect (SELECT MEDIA FROM NOTA WHERE 
NOTA.IDMATRICULA = MATRICULA.IDMATRICULA AND IDDISCIPLINA =2) AS
MATEMATICA, retorna a média da disciplina matemática do aluno em questão
como faço a ligação? simples ligo o idmatricula deste subselect com o
idmatricula do select principal





espero ter ajudado

edcley


SELECT NOMEALUNO,MATRICULA.IDTURMA,
CASE SITUACAO
WHEN 'APROVADO' THEN 'AP'
WHEN 'REPROVADO' THEN 'RP'
WHEN 'FINAL'   THEN 'FN'
WHEN 'DESISTENTE'THEN 'DE'
ELSE 'NA' END AS SITUACAO,
(SELECT CASE SITUACAO WHEN 'APROVADO' THEN 'N' ELSE 'R' END AS SITUACAO
FROM matriculados  WHERE matriculados.IDALUNO= matricula.IDALUNO AND
MATRICULADOS.ANOLETIVO = VANOLETIVO -1 ) as RN,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =2) AS MATEMATICA,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =4) AS GEOGRAFIA,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =5) AS HISTORIA,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =9) AS ARTES,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =10) AS EDUCACAO_FISICA,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =12) AS CIENCIAS,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =23) AS INGLES,
(SELECT MEDIA FROM NOTA WHERE  NOTA.IDMATRICULA = MATRICULA.IDMATRICULA
AND IDDISCIPLINA =24) AS PORTUGUES

FROM ALUNO INNER JOIN `matricula` ON (MATRICULA.IDALUNO = ALUNO.IDALUNO)
WHERE IDTURMA = 1 AND MATRICULA.ANOLETIVO = 2006












> Obrigado, Jeferson,
> pela boa explicação.
> []´s
> Otto
> ----- Original Message -----
> From: "Jeferson Oliveira" <jefersonfoliveira em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, November 22, 2006 10:03 AM
> Subject: Re: [firebase-br] Cross Table alguém tem alguma experiência?
>
>
> Otto Fuchshuber escreveu:
>> O que é cross-table?
>
> É o nome muitas vezes dado à visão horizontal de uma estrutura de
> dados vertical; à exibição de identificadores de linhas como
> identificadores de colunas, como exemplificado no post original do
> colega Fausto.
>
> Eu sempre que precisei resolvi por SQL ou, em casos mais complexos, por
> SP.
> Não precisei de componentes de terceiros para isso, embora reconheça
> que eles podem simplificar bastante essa tarefa.
>
>
> Abraço!
> Jeferson Oliveira
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 21/11/2006 / Versão:
> 4.4.00/4901
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista