Fórum Select (duas linhas em uma) #348145
29/10/2007
0
estou fazendo um select so que precisaria que duas linhas
gerasse uma unica, exemplo.
SELECT Matricula,CodMateria,Bimestre, Nota, Faltas FROM Notas
WHERE Matricula = ´107472´
AND AnoLetivo = ´2007´
AND SemLetivo = ´1´
ORDER BY ´CodMateria´, ´Bimestre´
Matricula CodMateria Bimestre Nota Faltas
107472----99192--------1-----------0---------2,5
107472----99192--------2-----------5---------2,5
107472----99193--------1-----------0---------0
107472----99193--------2-----------3---------0
107472----99194--------1-----------0---------0
107472----99194--------2-----------4---------0
o que preciso é:
Matricula CodMateria Bimestre Nota Faltas Bimestre Nota Faltas
107472----99192------1----------0------- 2,5 --- 2 -------- 5 --- 2,5
107472----99193------1----------0------- 0 ----- 2 -------- 3 --- 0
107472----99194------1----------0------- 0 ----- 2 -------- 4 --- 0
ou seja, não aparecer 2 registros mas sim uma com dados na frente com
Bimestre, Nota e Faltas.
agradeço
por enquanto
Kelly
Curtir tópico
+ 0Posts
29/10/2007
Orc
Gostei + 0
30/10/2007
Kelly
no aguardo ainda...
Gostei + 0
30/10/2007
George_piaulino
Ex.
Select matricula,
(select top 1 bimestre from nota n2 where n2.matricula = n1.matricula and bimestre = 1)
from n2 where ........
com esta dica, vc saberá o que fazer....
A função top 1 é do sql server, caso não seja sql sever o seu banco utilize a função correspondente do seu banco
abraços
Gostei + 0
30/10/2007
Marcosrocha
Tente, além do Group by, utilizar o distinct ´Select Distinct campos from Tabela´.
Gostei + 0
30/10/2007
Aasn
a melhor saída para vc é usar select dentro de select, se vc tiver índices bem definidos, não terá tanto problema assim com desempenho.
[]´s
AASN
Gostei + 0
30/10/2007
Marcosrocha
Por isso eu uso apenas Joins quando tenho certeza de que há ligação entre as duas tabelas e defino os índices conforme a necessidade. Mas no caso de kelly será impossível agrupar dados distintos (diferentes por exemplo bimestre 1 e 2) sem fazer select dentro de select. Além do mais, ficaria demorado se fosse colocar do jeito sugerido.
Esse select é possível, mas seria muito demorado.
Gostei + 0
30/10/2007
Kelly
tem a melhor performance.
Select Notas.Matricula,CodMateria, Disciplina.DescrDiscipl, Bimestre as Bim1,Nota as Nota1, Faltas as Faltas1,
(select top 1 Bimestre from notas n2 where n2.matricula = Notas.matricula and bimestre = ´2´ and n2.CodMateria = Notas.CodMateria) as Bim2,
(select top 1 Nota from notas n2 where n2.matricula = Notas.matricula and bimestre = ´2´ and n2.CodMateria = Notas.CodMateria) ASNotas2,
(select top 1 Faltas from notas n2 where n2.matricula = Notas.matricula and bimestre = ´2´ and n2.CodMateria = Notas.CodMateria) as Faltas2
from notas
INNER JOIN Disciplina
ON Notas.CodMateria = Disciplina.CodDiscipl
WHERE Matricula = ´107472´
AND AnoLetivo = ´2007´
AND SemLetivo = ´1´
AND Bimestre = ´1´
ORDER BY ´CodMateria´
se alguem tiver outra ideia que melhore agradeço.
Gostei + 0
30/10/2007
Marcosrocha
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)