Fórum Rotina SQL #256115

26/10/2004

0

Boa Tarde Pessoal,

Estou tendo um problema com a seguinte rotina que serve para gerar um boletim com as notas de varios alunos. Possuo várias tabelas entre elas, uma de carga horária que controla as materias que cada turma possue, uma de notas, uma de materia e as de definicao da turma (criacao da turma). Estou passando os parametros corretos, o problema é que quando mando visualizar o relatorio, se tenho apenas a materia do primeiro bimestre lançado, aparece correto a matéria e a nota no boletim, mas se cadastro a partir da nota do 2º bimestre, aparece dois registros como resultado, sendo os dois identicos e as colunas geradas de acordo como pede as clausulas select() certas.
Estou usando o paradox.

select tb_materias.materia, tb_monta_turma.turno, tb_clientes.nome,

(select tb_notas.nota_n,tb_materias.materia from tb_notas,tb_clientes, tb_materias where ((tb_clientes.codigo = :PCodA) and (tb_notas.cod_aluno = tb_clientes.codigo) and (tb_notas.cod_turma = :CodT) and (tb_notas.num_per = :NPer1) and (tb_notas.cod_materia = tb_materias.codigo))),

(select tb_notas.nota_n,tb_materias.materia from tb_notas,tb_clientes, tb_materias where ((tb_clientes.codigo = :PCodA) and (tb_notas.cod_aluno = tb_clientes.codigo) and (tb_notas.cod_turma = :CodT) and (tb_notas.num_per = :NPer2) and (tb_notas.cod_materia = tb_materias.codigo))),

(select tb_notas.nota_n,tb_materias.materia from tb_notas,tb_clientes, tb_materias where ((tb_clientes.codigo = :PCodA) and (tb_notas.cod_aluno = tb_clientes.codigo) and (tb_notas.cod_turma = :CodT) and (tb_notas.num_per = :NPer3) and (tb_notas.cod_materia = tb_materias.codigo))),

(select tb_notas.nota_n,tb_materias.materia from tb_notas,tb_clientes, tb_materias where ((tb_clientes.codigo = :PCodA) and (tb_notas.cod_aluno = tb_clientes.codigo) and (tb_notas.cod_turma = :CodT) and (tb_notas.num_per = :NPer4) and (tb_notas.cod_materia = tb_materias.codigo)))

from tb_notas, tb_materias, tb_monta_turma, tb_define_modulos, tb_clientes

where (tb_clientes.codigo = :PCodA) and
(tb_notas.cod_aluno = tb_clientes.codigo) and
(tb_notas.cod_turma = :PCodTur) and
(tb_notas.cod_materia = tb_materias.codigo) and
(tb_define_modulos.novo_codigo = :PCTurma) and
(tb_monta_turma.codigo = tb_define_modulos.novo_codigo)

se alguem tiver uma idéia, agradeço desde já.

Sanzio F. C. Amora
InforPlay Informática


Sanzio

Sanzio

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar