Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou quebrando a cabeça para fazer uma consulta em 2 colunas da mesma tabela.
Preciso retornar a NOTA1 e NOTA2 consultando ambas colunas e listar sem repetir as notas vinculadas com cada série.
TABELA ALUNOS
COD | CODSERIE | DATACADASTRO | NOTA1 | NOTA2
1 | 2 | 01/08/2021 | 5 | 3
2 | 1 | 11/08/2021 | 3 | 5
3 | 2 | 12/08/2021 | 5 | 3
4 | 3 | 15/08/2021 | 3 | 1
5 | 2 | 15/08/2021 | 5 | 3
6 | 3 | 18/08/2021 | 4 | 5
7 | 2 | 22/08/2021 | 2 | 3
8 | 1 | 12/08/2021 | 1 | 3
9 | 2 | 25/08/2021 | 5 | 6
RETORNAR:
SERIE 1
Nota: 3
Nota: 5
Nota: 1
SERIE 2
Nota: 5
Nota: 3
Nota: 2
Nota: 6
SERIE 3
Nota: 3
Nota: 1
Nota: 4
Nota: 5
Aqui tenho um foreach de outra tabela que devolve o codigo das séries e as notas para consulta
foreach($rsserie as list($varserie,$varnota1,$varnota2)){
SELECT nota1, nota2 FROM alunos WHERE codserie like '$varserie' and (nota1 = '$varnota1' or nota1 = '$varnota2' or nota2 = '$varnota1' or nota2 = '$varnota2') Group by nota1, nota2
}>
Em 28/08/2021 at 14:30, Motta disse:
Fazer um "unpivot"
SELECT nota
FROM
(
SELECT nota1 nota
FROM alunos
WHERE codserie like '$varserie'
and (nota1 = '$varnota1' or
nota1 = '$varnota2')
UNION ALL
SELECT nota2 nota
FROM alunos
WHERE codserie like '$varserie'
and (nota2 = '$varnota1' or
nota2 = '$varnota2')
) VIRTUAL
GROUP BY nota
Muito obrigado Motta pela ajuda!
Acabei me confundindo ao postar o script do select.
No foreach recebo apenas o codserie, e não dá certo quando faço com group nota1, nota2
foreach($rsserie as list($varserie)){
SELECT nota1, nota2 FROM alunos WHERE codserie like '$varserie' Group by nota1, nota2
}Não entendi , desculpe.
>
1 hora atrás, Motta disse:
Não entendi , desculpe.
TABELA ALUNOS
COD | CODSERIE | DATACADASTRO | NOTA1 | NOTA2
1 | 2 | 01/08/2021 | 5 | 3
2 | 1 | 11/08/2021 | 3 | 5
3 | 2 | 12/08/2021 | 5 | 3
4 | 3 | 15/08/2021 | 3 | 1
5 | 2 | 15/08/2021 | 5 | 3
6 | 3 | 18/08/2021 | 4 | 5
7 | 2 | 22/08/2021 | 2 | 3
8 | 1 | 12/08/2021 | 1 | 3
9 | 2 | 25/08/2021 | 5 | 6
RETORNAR:
SERIE 1
Nota: 3
Nota: 5
Nota: 1
SERIE 2
Nota: 5
Nota: 3
Nota: 2
Nota: 6
SERIE 3
Nota: 3
Nota: 1
Nota: 4
Nota: 5
Aqui tenho um foreach de outra tabela que devolve o codigo das séries para consulta
foreach($rsserie as list($varserie)){
SELECT nota1, nota2 FROM alunos WHERE codserie like '$varserie' Group by nota1, nota2
}Tentou rodar o sql que postei , ou algo parecido ?
>
Em 02/09/2021 at 22:26, Motta disse:
Tentou rodar o sql que postei , ou algo parecido ?
Resolvido!!
Muito obrigado Motta, fiz conforme me indicou apenas retirando a parte que cita os códigos das notas.
Segue script final:
SELECT nota
FROM
(
SELECT nota1 nota
FROM alunos
WHERE codserie like '$varserie'
UNION ALL
SELECT nota2 nota
FROM alunos
WHERE codserie like '$varserie'
) VIRTUAL
GROUP BY nota
Fazer um "unpivot"
SELECT nota
FROM
(
SELECT nota1 nota
FROM alunos
WHERE codserie like '$varserie'
and (nota1 = '$varnota1' or
nota1 = '$varnota2')
UNION ALL
SELECT nota2 nota
FROM alunos
WHERE codserie like '$varserie'
and (nota2 = '$varnota1' or
nota2 = '$varnota2')
) VIRTUAL
GROUP BY nota