按照表设定的区间进行查询如何弄
领导要求按照进厂的月份进行设定 每个人分值
列如
参数如下
进厂时间 值
1个月-6个月 3
7个月-12个月 5
13个月-15个月 7
16个月-20个月 8
要求查询结果如下
姓名 进厂时间 得值
张三 5个月 3
李四 8个月 5
王五 17个月 8
这些表如何设计,查询语句怎么写,帮忙找一个示例 ,谢谢.
------解决方案--------------------with tb(jcsjbegin, jcsjend, value) as
(
select 1,6,3 union all
select 7,12,5 union all
select 13,15,7 union all
select 16,20,8
)
, tb2(name, rj) as
(
select 'zs', 5 union all
select 'ls', 8 union all
select 'wu', 17
)
select tb2.*, tb.value from tb2
inner join tb on tb2.rj >= tb.jcsjbegin and tb2.rj < tb.jcsjend
------解决方案--------------------最后的17个月怎么算出来的?
------解决方案--------------------表里肯定有一个开始时间
用当前时间 - 开始时间 的 值 between 1 and 6 取 3
------解决方案--------------------
create table #Temp
(
begindate datetime,
[name] varchar(50) ,
score int
)
insert into #Temp values('2013-5-1','张三',0)
insert into #Temp values('2013-4-1','lishi',0)
insert into #Temp values('2011-1-1','wangwu',0)
select * from #Temp
select [name],(case when m between 1 and 6 then 3 when m between 7 and 10 then 5 else 0 end) as '粉色' from ( select [name],datename(m,(getdate()- begindate)) m from #Temp) t