Logo Hardware.com.br
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas

MySQL - consultas

#1 Por neodarkman 26/08/2013 - 15:05
Olá...
tenho um banco em MySql onde temos uma tabela com a estrutura:

Tabela Resultado:

ano,bimestre,tipo,disciplina,matricula,nota

quando faço uma consulta

select * from resultado
where ano = 2013 and bimestre = 1
and matricula = 224004310
and (disciplina = 'por' or (disciplina is null and tipo = 'PS'))


ela retorna algo do tipo:

ano bimestre tipo disciplina matricula nota
2013 1 ADP por [->] 224004310 2.13
2013 1 FALTAS por [->] 224004310 0.00
2013 1 AIESC por [->] 224004310 0.60
2013 1 AIISC por [->] 224004310 1.05
2013 1 PS NULL 224004310 1.00


Precisaria que a consulta retornasse, para disciplina = por (português):

ano bimestre matricula disciplina adp aiesc aiisc ps faltas
2013 1 224004310 por 2.13 0.6 1.05 1.00 0

Já tentei de tudo, mas não consegui.

Se alguém puder ajudar eu agradeço.
explosive_spirit
explosive_sp... Zerinho Registrado
119 Mensagens 7 Curtidas
#2 Por explosive_sp...
26/08/2013 - 17:09
neodarkman disse:
Olá...
tenho um banco em MySql onde temos uma tabela com a estrutura:

Tabela Resultado:

ano,bimestre,tipo,disciplina,matricula,nota

quando faço uma consulta

select * from resultado
where ano = 2013 and bimestre = 1
and matricula = 224004310
and (disciplina = 'por' or (disciplina is null and tipo = 'PS'))


ela retorna algo do tipo:

ano bimestre tipo disciplina matricula nota
2013 1 ADP por [->] 224004310 2.13
2013 1 FALTAS por [->] 224004310 0.00
2013 1 AIESC por [->] 224004310 0.60
2013 1 AIISC por [->] 224004310 1.05
2013 1 PS NULL 224004310 1.00


Precisaria que a consulta retornasse, para disciplina = por (português):

ano bimestre matricula disciplina adp aiesc aiisc ps faltas
2013 1 224004310 por 2.13 0.6 1.05 1.00 0

Já tentei de tudo, mas não consegui.

Se alguém puder ajudar eu agradeço.


Essa ordem de campos: ano bimestre matricula disciplina adp aiesc aiisc ps faltas

É somente para disciplina portugues?

Se sim, sugiro usar procedures e os campos do where você passa como parâmetro e testa com if:


IF pdisciplina = 'por' THEN
-- SELECT adp aiesc aiisc ps faltas .... FROM...
ELSE
-- SELECT * FROM ....
END IF;
Você também consegue executar comandos a partir de uma string, ou seja, transformar a string em query.

Outra dica, mesmo que sejam comandos SQL, sugiro também declará-los nas tag CODE e /CODE apenas pra gente visualizar melhor
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#5 Por neodarkman
28/08/2013 - 15:41
explosive_spirit disse:
Não entendi a parte de programar para web, até onde sei store procedure é um recurso da base de dados e isso independe do ambiente utilizado para desenvolvimento.

Acho que me expressei mal, desculpe. É que quando posto dúvidas sobre DB sempre alguém acha que estou programando para web e posta códigos em php (não foi o teu caso)...eh eh eh
Eu até penso, no futuro, em portar o meu aplicativo para a web...

Eu sei que as procedures são recursos do próprio banco.
De qualquer forma, obrigado pela dica.
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
explosive_spirit
explosive_sp... Zerinho Registrado
119 Mensagens 7 Curtidas
#6 Por explosive_sp...
28/08/2013 - 16:20
neodarkman disse:
Acho que me expressei mal, desculpe. É que quando posto dúvidas sobre DB sempre alguém acha que estou programando para web e posta códigos em php (não foi o teu caso)...eh eh eh
Eu até penso, no futuro, em portar o meu aplicativo para a web...

Eu sei que as procedures são recursos do próprio banco.
De qualquer forma, obrigado pela dica.


Entendi, quando pedi para que postasse suas instruções de SQL na tag CODE e /CODE foi apenas para melhor visualização mesmo, pois sabe como é, confunde um pouco na hora de ler e tentar identificar possíveis problemas.

Mas tranquilo, quando conseguir resolver, poste pra gente ver ok?

Abraço.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal