[firebase-br] AUTOINC

Rafael Pimenta rafa.spimenta em gmail.com
Seg Jan 23 09:51:09 -03 2012


Bom dia a todos,
Pelo que andei pesquisando e através dos seus depoimentos, constatei que
realmente o firebird não tem tal recurso(que no sql server seria o PIVOT ).

Solução encontrada:

Como os dados da tabela de disciplina não são fixos, a única alternativa
que encontrei é fazer um select normal retornando as disciplinas com as
notas dos alunos e via programação montar um grid dinamicamente com uma
coluna para cada disciplina.

Agradeço o apoio de todos e fica a dica para que será incluído tal recurso
em novas releases do firebird.

Rafael

Em 23 de janeiro de 2012 09:09, Edson Marco <edmafer em gmail.com> escreveu:

> Infelizmente para você fazer isto, você vai travar o teu resultado para
> determinadas disciplinas, ou seja, se você cadastrar uma nova ele não vai
> trazer.
>
> Você pode fazer de várias formas, algumas seriam usando subselect ou
> fazendo uma procedure (ou mesmo um execute block) para retornar os
> registros como colunas.
>
> na subselect seria algo mais ou menos assim
>
> select
>   a.nome_aluno,
>   (select n.qtd_nota from notas n where n.matricula_aluno =
> a.matricula_aluno and n.codigo_disciplina = 2) PORTUGUES,
>
>  faça o mesmo para cada matéria
>
> from
> aluno a
>
> Isto se você realmente quiser trazer isto já pronto do banco... ou faça
> isto mais dinâmico (acho que é melhor) e monte esta estrutura na aplicação.
>
> []'s
>
> 2012/1/22 Rafael Pimenta <rafa.spimenta em gmail.com>
>
> > Colegas, preciso com certa urgencia de uma select que retorne alguns
> dados
> > na seguinte disposição:
> >
> > MATRICULA  NOME     PORTUGUES FISICA QUIMICA
> > 0001       JOSE     8         7      5
> > 0002       MANUEL   9         3      6
> > 0003       JOAQUIM  6         7      7
> >
> > Estrutu das tabelas:
> >
> > CREATE TABLE ALUNOS (
> >    MATRICULA_ALUNO       INTEGER NOT NULL,
> >    NOME_ALUNO            VARCHAR(50) NOT NULL,
> >    DATANASCIMENTO_ALUNO  DATE NOT NULL);
> >
> > CREATE TABLE DISCIPLINAS (
> >    CODIGO_DISCIPLINA  INTEGER NOT NULL,
> >    NOME_DISCIPLINA    CHAR(50) NOT NULL);
> >
> > CREATE TABLE NOTAS (
> >    MATRICULA_ALUNO    INTEGER NOT NULL,
> >    CODIGO_DISCIPLINA  INTEGER NOT NULL,
> >    QTD_NOTA           NUMERIC(5,2) DEFAULT 0);
> >
> > Fiz os relacionamentos tudo ok.
> >
> > Mas eu não sei montar um select para retornar cada matéria como sendo uma
> > coluna.
> >
> > Obrigado!
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
>
> --
> /*
>  * Edson Marco Ferrari Junior
>  * edmafer em edmafer.com.br
>  * http://www.edmafer.com.br
>  */
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista