Ir para conteúdo
Fórum Script Brasil
  • 0

Só Para Feras


André Guilherme

Pergunta

Minha consulta esta ai:

select d.disnome, a.alunome, t.mtunrdiario, if(n.notmedia = '1',n.notnota, null) as bimestre1, if(n.notmedia = '2', n.notnota, null) as bimestre2, if(n.notmedia = '3', n.notnota, null) as bimestre3, if(n.notmedia = '4', n.notnota, null) as bimestre4 from cad_disciplinas d inner join cad_grades g on g.graexerc = "2006" and g.graserie = "43" and g.gradiscip = d.discodigo left join cad_notas n on n.notmedia = n.notmedia and g.gracodigo = n.notgrade left join cad_matturmas t on t.mtuturma = "4 a m" and t.mtumatricula = n.notmatric left join cad_matriculas m on m.matcodigo = t.mtumatricula left join cad_alunos a on a.alucodigo = m.mataluno

Obtive:

print_screen.jpg

Gostaria de obter 1 linha ao invés de 4 linhas , com as notas do 1, 2, 3, e 4 bimestre...

gostaria que ficasse assim:

NOME BIMESTRE1 BIMESTRE2 BIMESTRE3 BIMESTRE4

ALUNO TESTE 2.3 2.0 4.0 4.0

porque não aparece a imagem que postei???

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest André Guilherme

Boa idéia, so que tem um problema. O banco rodava no interbase, então preciso manter a estrutura, porque já existe muitos alunos com notas do 1, 2, 3 e 4 bimestre. Será que é possível resolver isso?

Obrigado pela dica!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá André,

Não entendi bem a estrutura e a relação entre as tabelas mas você teria que fazer algo do tipo:

select d.disnome, a.alunome, t.mtunrdiario, 
     bimestre1, bimestre2, bimestre3, bimestre4
from (select notnota as bimestre1 from cad_notas where notmedia = '1') as b1,
     (select notnota as bimestre2 from cad_notas where notmedia = '2') as b2,
     (select notnota as bimestre3 from cad_notas where notmedia = '3') as b3,
     (select notnota as bimestre4 from cad_notas where notmedia = '4') as b4,
     cad_disciplinas d inner join cad_grades g on g.graexerc = "2006" ...

Se você pudesse me passar a estrutura, talvez ficaria mais fácil pra da uma ajuda mais precisa.

Abs. Progr'amador.

B)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest André Guilherme

cara você me deu uma luz, muito abrigado!

Mas ainda tenho problemas...

Seguinte:

Se coloco assim:

select distinct a.alunome, n.notmedia, n.notnota, d.disnome from

(select distinct notnota as bimestre1 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula where notmedia = '1' and a.alunome = 'princesa' and m.matexerc = '2006') as b1,

(select distinct notnota as bimestre2 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula where notmedia = '2' and a.alunome = 'princesa' and m.matexerc = '2006') as b2,

(select distinct notnota as bimestre3 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula where notmedia = '3' and a.alunome = 'princesa' and m.matexerc = '2006') as b3,

(select distinct notnota as bimestre4 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula where notmedia = '4' and a.alunome = 'princesa' and m.matexerc = '2006') as b4,

cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula right join cad_grades g on g.gracodigo = n.notgrade right join cad_disciplinas d on d.discodigo = g.gradiscip right join cad_series s on s.sercodigo = g.graserie where a.alunome = 'princesa' and m.matexerc = '2006'

ele me da a pesquisa corretamente com oito registros e tal.

mas se adiciono, bimestre1, bimestre2, bimestre3, bimestre4 na instrucao select, ele simplesmente me da 128 registros na pesquisa...

ai está pegando...

entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest André Guilherme

Deixa eu tentar explicar melhor.

Select:

select distinct * from cad_alunos a,

(select distinct notnota as bimestre1 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula right join cad_grades g on g.gracodigo = n.notgrade right join cad_disciplinas d on d.discodigo = g.gradiscip right join cad_series s on s.sercodigo = g.graserie where n.notmedia = '1' and a.alunome = 'princesa' and m.matexerc = '2006') as b1,

(select distinct notnota as bimestre2 from cad_alunos a right join cad_matriculas m on a.alucodigo = m.mataluno right join cad_matturmas ma on ma.mtumatricula = m.matcodigo right join cad_notas n on n.notmatric = ma.mtumatricula right join cad_grades g on g.gracodigo = n.notgrade right join cad_disciplinas d on d.discodigo = g.gradiscip right join cad_series s on s.sercodigo = g.graserie where n.notmedia = '2' and a.alunome = 'princesa' and m.matexerc = '2006') as b2 WHERE alunome = 'princesa'

Obtive este resultado:

resultado.gif

O resultado seria correto se nesta consulta ele me retornasse so a primeira e a quarta linha...

essa 2 e 3 estao erradas...

Sei que para quem costuma trabalhar com mysql não esta dificil resolver esta situacao...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...