首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

按照表设定的区间进行查询怎么弄

2013-12-16 
按照表设定的区间进行查询如何弄领导要求按照进厂的月份进行设定 每个人分值列如参数如下进厂时间值1个月-

按照表设定的区间进行查询如何弄
领导要求按照进厂的月份进行设定 每个人分值
列如
参数如下
进厂时间        值
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

热点排行