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

idade


Guest karlos henrique

Pergunta

Guest karlos henrique

Amigos, uma mãozinha por favor!

tenho várias idades em dias, por exemplo: numa amplitude de 700 dias até 800 dias tenho várias idades de um mesmo

indivíduo, mas como faço um select para me retornar apenas a idade mais próxima de 750 dias?

select * from tabela where idade >= 700 and idade <= 800 ---> este já é o meu primeiro filtro, só preciso selecionar

a mais próxima de 750 entre todas as que entraram neste intervalo.

VEJA: entraram as seguintes idades:

714

717

743 ---> esta é a idade que deveria ser selecionada porque tá mais próxima de 750, como fazer isso, tem como?!

777

790

792

798

obrigado, Karlos

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Só esclarece uma parada se a lista fosse a sequinte:

714
717
743 ---> esta é a idade que deveria ser selecionada porque tá mais próxima de 750, como fazer isso, tem como?!
757 
777
790
792
798

Qual deveria ser retorado 743 ou 757?

Ou as duas?

Ou a mais perto e menor?

Ou a mais perto e maior?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Jefferson Alves

Olá,

Fiz um exemplo para encontrar a solução para o seu problema. Dê uma olhada e depois me diga se atende.

CREATE TABLE [dbo].[TESTE](
    [SEQ] [int] IDENTITY(1,1) NOT NULL,
    [IDADE] [int] NULL,
 CONSTRAINT [PK_TESTE] PRIMARY KEY CLUSTERED 
(
    [SEQ] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO TESTE(IDADE)VALUES(714)
INSERT INTO TESTE(IDADE)VALUES(717)
INSERT INTO TESTE(IDADE)VALUES(743)
INSERT INTO TESTE(IDADE)VALUES(757)
INSERT INTO TESTE(IDADE)VALUES(777)
INSERT INTO TESTE(IDADE)VALUES(790)
INSERT INTO TESTE(IDADE)VALUES(792)
INSERT INTO TESTE(IDADE)VALUES(798)


SELECT * FROM TESTE WHERE ABS(750 - IDADE) IN (SELECT MIN(ABS(750 - IDADE)) FROM TESTE)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest karlos henrique

jothaz,

no meu caso tanto faz retornar Ou a mais perto e menor Ou a mais perto e maior, pode ser sim qualquer uma das duas ultimas opções q você questiona, ok .. grato pela ajuda, aguardo!

Jefferson,

obrigado pela força, vou testar sua dica para ver se funciona daquela maneira no meu problema, valeu por enquanto..

abraços, karlos

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0
Guest karlos henrique

Amigo, fiz o teste na minha tabela, apesar da linguagem que uso(paradox) ela não suporta a função ABS, tirei ela e

o select abaixo retorna um registro de um individuo cuja idade não tá no intervalo que queremos, serah q é deficiencia da linguagem?

select * from TESTE where (750 - idade) in (select min(750 - idade) from TESTE)

abraços, karlos

Editado por kuroi
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,5k
×
×
  • Criar Novo...