Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rayweb

Listar o Nome e o Telefone dos clientes do sexo feminino com idade 20

Recommended Posts

rayweb,

sem postar nem a estrutura da base de dados fica complicado.

O que você já conseguiu fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

rayweb,

sem postar nem a estrutura da base de dados fica complicado.

O que você já conseguiu fazer?

 

SELECT Nome, Telefone, FROM Cliente
WHERE DataNascimento > 1983 and > 1993
and sexo = 'F'
Esse foi o máximo que conseguir fazer mais ainda falta mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa também de uma function que calcule a idade, deve ter várias publicadas na web.

Supondo que, corretamente, foi armazenada a data de nascimento do cliente e não a idade (que muda cada ano).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que o maio problema esta na idade.
Como o Motta disse, tem várias funções que calculam a idade, já que nativamente o SQL não o faz.
O que você poderá fazer é uma combinação de uso através das funções de data e hora existentes no SQL Server.
Uma delas é o datediff que você pode ler neste link:
http://msdn.microsoft.com/pt-br/library/ms189794.aspx

Mas eu tenho uma função pronta:
Olha o exemplo abaixo:

declare @tabela table (nome varchar(1000), telefone varchar(20), sexo varchar(1), data_nascimento datetime)

insert into @tabela values ('nome_01', '(11)99999-9999', 'M','1980-01-01')
insert into @tabela values ('nome_02', '(11)88888-8888', 'F','1990-02-11')
insert into @tabela values ('nome_03', '(11)77777-7777', 'F','1976-03-21')
insert into @tabela values ('nome_04', '(11)66666-6666', 'M','1965-04-15')
insert into @tabela values ('nome_05', '(11)55555-5555', 'F','1986-05-16')
insert into @tabela values ('nome_06', '(11)44444-4444', 'M','2000-06-17')

/*
datediff(yy, data_nascimento, getdate()) as Idade -- Em anos
datediff(mm, data_nascimento, getdate()) as Meses -- Em meses
*/

SELECT 
*  -- TODOS OS REGISTROS
FROM @tabela
WHERE 
sexo = 'F' -- SOMENTE SEXO FEMININO
AND  datediff(yy, data_nascimento, getdate()) BETWEEN 20 AND 30 -- IDADE ENTRE 20 E 30 ANOS



Para entender:
O datediff calcula uma diferença entre datas, então no caso, eu estou calculando a diferença de anos com o ano atual e para ilustrar fiz os dos meses também. Pode-se fazer cáculo por horas, minutos e segundos.

Acho que já te ajuda.

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.