2017-01-05 11 views
0

У меня есть таблица клиентов, у которой есть расчетный столбец для Age.Ссылка на AgeGroup Таблица

CREATE TABLE [dbo].[Client] 
(
    [ClientID] [int] IDENTITY(1,1) NOT NULL, 
    [ClientName] varchar(50) NOT NULL, 
    [DOB] [date] NOT NULL, 
    [Age] AS (datediff(year,[DOB],getdate())-case when dateadd(year,datediff(year,[DOB],getdate()),[DOB])>getdate() then (1) else (0) end), 
    CONSTRAINT [PK_Client] PRIMARY KEY CLUSTERED 
(
[ClientID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
) 

У меня есть таблица AgeGroup, которая имеет следующие строки.

AgeGroupID AgeGroup StartRange EndRange 
1   65 & over 65   255 
2   55-64  55   64 
3   45-54  45   54 
4   35-44  35   44 
5   25-34  25   34 
6   19-24  19   24 
7   13-18  13   18 
8   Below 12 0   12 

Как я могу связать клиента с AgeGroup, чтобы показать группу пользователей AgeGroup в выбранном запросе?

С выходом возвращается, такие как следующий

ClientID ClientName  Age  AgeGroup 
1   Peter Smith 25  25-34 
+0

Может ли вы показать необходимый вывод – TheGameiswar

+0

Done @TheGameiswar – Philip

+0

не уверен, хочу ли я люблю жить до 255 лет или нет ... – Tanner

ответ

1

может быть, что-то вроде этого:

SELECT c.ClientID 
    ,c.ClientName 
    ,c.Age 
    ,ag.AgeGroup 
FROM client c 
LEFT JOIN AgeGroup ag 
    ON c.age BETWEEN ag.StartRange AND ag.EndRange 
+1

Спасибо за это, отлично работает. – Philip