Dúvida com consulta com 2 intervalo
Amigos, tenho a seguinte situação:
mostra disciplinas com nota menor que 5,0 e maior que 7.
Desta forma que foi feito seria a melhor opção ou tem outra?
agradeço
select d.COD_DISC, * from dbo.TB_DISCIPLINAS D
inner join TB_HISTORICO H on H.COD_DISC = d.COD_DISC
where H.NOTA < '5' and NOTA > '7'
mostra disciplinas com nota menor que 5,0 e maior que 7.
Desta forma que foi feito seria a melhor opção ou tem outra?
agradeço
select d.COD_DISC, * from dbo.TB_DISCIPLINAS D
inner join TB_HISTORICO H on H.COD_DISC = d.COD_DISC
where H.NOTA < '5' and NOTA > '7'
Itamar Souza
Curtidas 0
Respostas
Marisiana Battistella
29/09/2014
A lógica da instrução está correta, no momento não lembro de outra instrução que possa ser utilizada para esse caso.
Aconselho a informar o nome das colunas que vc precisa obter no retorno no SELECT, não é considerada uma boa prática utilizar
nas instruções SQL.
Aconselho a informar o nome das colunas que vc precisa obter no retorno no SELECT, não é considerada uma boa prática utilizar
SELECT * FROM tabela
GOSTEI 0
Marisiana Battistella
29/09/2014
Outra coisa que observei no teu código é que você informou aliás para as tabelas mas não utilizou eles em todos os campos os campos das junções. Veja um exemplo:
Esse SQL é simples, mas se for um SQL maior com mais tabelas envolvidas, a boa definição da instrução fará diferença na performance dela.
select d.cod_disc,
d.*
from dbo.tb_disciplina d
inner join dbo.tb_historico h
on h.cod_disc = d.cod_disc
where h.nota < '5'
and h.nota > '7'
Esse SQL é simples, mas se for um SQL maior com mais tabelas envolvidas, a boa definição da instrução fará diferença na performance dela.
GOSTEI 0
Joel Rodrigues
29/09/2014
Olá, pelo que vi na sua instrução você está filtrando os históricos cuja nota é menor que 5 E maior que 7. Observe que nenhum valor pode ser menor que 5 E maior que 7 ao mesmo tempo. O correto ali seria um OR, para trazer os registros cuja nota seja menor que 5, juntamente com os registros cuja nota é maior que 7.
Ou seja, só não serão listados os registros cuja nota estiver no intervalo [5,7]. Serão listados os registros com nota entre 0 e 6,9 e os que têm nota entre 7,1 e 10 (considerando o intervalo [0,10] como limite das suas notas.
Ou seja, só não serão listados os registros cuja nota estiver no intervalo [5,7]. Serão listados os registros com nota entre 0 e 6,9 e os que têm nota entre 7,1 e 10 (considerando o intervalo [0,10] como limite das suas notas.
GOSTEI 0
Marisiana Battistella
29/09/2014
O Joel tem razão!
Não analisei esse detalhe....
Não analisei esse detalhe....
GOSTEI 0