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

Verificar se o valor está entre os dados da tabela


ToPronto N'Area

Pergunta

Olá preciso fazer esta verificação.

Possuo uma tabela onde tenho os dados classificação, idade e resultado

Preciso fazer um sql q ela me traga os resultados de acordo com os criterio

Atenção eu utilizo o sql no visual basic por isto a escrita desta forma

a estrutura da tabela é esta

CODIGO SEXO CLASSIFICACAO IDADE RESULTADO

2 MASCULINO BAIXO RISCO DE PARA SAÚDE 20 0,82

8 MASCULINO MODERADO RISCO PARA SAÚDE 20 0,83

14 MASCULINO ALTO RISCO PARA SAÚDE 20 0,89

20 MASCULINO ALTO RISCO PARA SAÚDE 20 0,95

fiz um sql assim

Sql = "select TOP 1 * from tab1 where idade like '" & 20 & "'"

Sql = Sql & " and resultado >= '" & "0,81" & "' ORDER BY RESULTADO ASC"

Onde "20" e "0,81" eu utilizo variaveis, o qual estão funcionando a questão é a seguinte até 0,90 funciona perfeitamente o problema é que na hora em que possuir um resultado maior que 0,96 ele não me traz nada!

Bom pra vocês verificarem como ele esta funcionando

Sql = "select TOP 1 * from tab1 where idade like '" & 20 & "'"

Sql = Sql & " and resultado >= '" & "0,81" & "' ORDER BY RESULTADO ASC"

ele me retorna

2 MASCULINO BAIXO RISCO DE PARA SAÚDE 20 0,82

porem quando for

Sql = "select TOP 1 * from tab1 where idade like '" & 20 & "'"

Sql = Sql & " and resultado >= '" & "0,99" & "' ORDER BY RESULTADO ASC"

ele não me retorna nada.

eu preciso de um sql que me possibilite fazer comparações ou buscar o valor mais proximo daquele pra maior?

Acho q é isso espero ter sido claro, se alguém puder me ajudar eu fico muito grato.

Até mais

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
tenta usar ponto no lugar de virgula. em vez de:

Sql = Sql & " and resultado >= '" & "0,81" & "' ORDER BY RESULTADO ASC"
faca:
Sql = Sql & " and resultado >= '" & "0.81" & "' ORDER BY RESULTADO ASC"

Kuroi valeu pela tentativa, mas é indiferente esta alteração, há questão é q no sql eu estou mandando ele procurar o maior depois daquele valor, porem quando eu coloco o valor maior que o q existe na tabela, ele não me retorna nada prq não possui um valor maior que aquele!

Esta é a questão.

eu estou estudando a possibilidade de escrever um sql com uma busca por valores aproximados, por exemplo se for 0,81 ele buscar o mais proximo com preferencia sempre pro valor maior , quando não houver maior ele busca o menor proximo a ele.

Ou então estou estudando uma forma de digitar um sql dentro de outro sql, senão vou fazer abrir dois rs um em cima dos valores do outro rs.

Só pra lembrar os campos idade e resultado são textos, fiz isto com intuito de poder pesquisar qualquer valor dentro do campo.

Bom de klker forma obrigado pela ajuda!

Editado por ToPronto N'Area
Link para o comentário
Compartilhar em outros sites

  • 0

cara antes de mais nada, quero agradecer a ajuda de todos que passaram por aqui, principalmente do brother Kuroi, valeu mesmo!

Conforme tinha dito, esta instrução sql vai ser usado no visual basic então utilizei ferramentas do vb mesmo e ficou assim

public rst as new adodb.recordset

public rsant as new adodb.recordset

Sql = "select TOP 1 * from RCQ where idade like '" & RefIdade & "' AND SEXO LIKE '" & frmCliente.CmbSexo.Text & "' "

Sql = Sql & " and resultado >= '" & Ctxt(15).Text & "' ORDER BY RESULTADO ASC"

Rst.Open Sql, Cnn

If Rst.BOF = True And Rst.EOF = True Then

Sql = "select TOP 1 * from RCQ where idade like '" & RefIdade & "' AND SEXO LIKE '" & frmCliente.CmbSexo.Text & "' "

Sql = Sql & " and resultado <= '" & Ctxt(15).Text & "' ORDER BY RESULTADO desc"

RsAnt.Open Sql, Cnn

Ctxt(16).Text = RsAnt.Fields("classificacao")

RsAnt.Close

Else

Ctxt(16).Text = Rst.Fields("classificacao")

End If

Rst.Close

Então no primeiro sql eu vejo todos os valore maiores que o retornado na ctxt(15).text

e quando ele não me retornar nada, pelo fato da ctxt(15).text ser maior q os valores da tabela, ele ira entrar num outro sql e abre outra conexão só q da forma contraria do outro procurando o menor e o order desc

ai eu consigo coim precisaão os valores que busco na tabela...

tai a dica caso alguém precise um dia!

Sem mais, muito obrigado a todos!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

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