Guest karlos henrique Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 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 mesmoindiví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 selecionara mais próxima de 750 entre todas as que entraram neste intervalo.VEJA: entraram as seguintes idades:714717743 ---> esta é a idade que deveria ser selecionada porque tá mais próxima de 750, como fazer isso, tem como?!777790792798obrigado, Karlos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 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 798Qual deveria ser retorado 743 ou 757? Ou as duas?Ou a mais perto e menor?Ou a mais perto e maior? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Jefferson Alves Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 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) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest karlos henrique Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 (editado) 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 Outubro 7, 2008 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest karlos henrique Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 (editado) Amigo, fiz o teste na minha tabela, apesar da linguagem que uso(paradox) ela não suporta a função ABS, tirei ela eo 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 Outubro 7, 2008 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 7, 2008 Denunciar Share Postado Outubro 7, 2008 Amigo, fiz o teste na minha tabela, apesar da linguagem que uso(paradox) ela não suporta a função ABS,opa, por acaso você não esta usando SQL Server?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.