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

关于保险数据有关问题?

2012-01-28 
关于保险数据问题?!!!请教,关于公积金保险补缴有这样的规定?对公积金基数和保险比率相同的?数据,将保险基

关于保险数据问题?!!!
请教,关于公积金保险补缴有这样的规定?
对公积金基数和保险比率相同的?数据,将保险基数,单位缴费,个人缴费用合并同一条记录;如保险基数或比率任何一个发生改变,则即使是同一个人,也将做为单独的记录显示出来?

例如
数据结构:
人员编号, 姓名, 保险基数 比率 单位缴费 个人缴费 保险补缴年月

数据如下
001 王小光 6600 0.1 660 660 200704
001 王小光 6600 0.1 660 660 200705
001 王小光 5500 0.1 550 550 200706
001 王小光 5500 0.2 1100 1100 200707
002 肖光 6879 0.1 687.9 687.9 200705


要实现如下结果:
001 王小光 6600 0.1 1320 1320 200704-200705
001 王小光 5500 0.1 550 550 200706
001 王小光 5500 0.2 1100 1100 200707
002 肖光 6879 0.1 687.9 687.9 200705

按照这样的上面的条件,如何得到如上结果?!
太菜了,一直没实现这个功能!
本来想通过建立保险比率以及基数变动表,来记录变动时间,通过时间来判断?无奈用户拒绝这样做?
请各位赐教!!!谢谢



[解决办法]

SQL code
create table #tab (personid varchar(10),name varchar(8),js int,bl numeric(2,1),dw money,gr money ,ym varchar(10))insert into #tab values('001','王小光',6600,0.1,660,660,'200704')insert into #tab values('001','王小光',6600,0.1,660,660,'200705')insert into #tab values('001','王小光',5500,0.1,550,550,'200706')insert into #tab values('001','王小光',5500,0.2,1100,1100,'200707')insert into #tab values('002','肖光',6879,0.1,687.9,687.9,'200705')select #tab.*,flag=0 into #t from #tab order by personid,ymdeclare @personid varchar(10),@js int,@bl numeric(2,1),@flag int              set @flag=0update #t set               @flag=case when @personid=personid and @js=js and @bl=bl then @flag else @flag+1 end,              @personid=case when @personid=personid and @js=js and @bl=bl then @personid else personid end ,              @js=case when @personid=personid and @js=js and @bl=bl then @js else js end,              @bl=case when @personid=personid and @js=js and @bl=bl then @bl else bl end,              flag=@flagselect 人员编号=max(personid),姓名=max(name),保险基数=max(js),比率=max(bl),单位缴费=sum(dw),个人缴费=sum(gr),保险补缴年月=case when (select count(1) from #t where flag=a.flag)>1 then min(ym)+'-'+max(ym) else max(ym) end from #t a group by flagdrop table #t----结果人员编号 姓名     保险基数        比率                                      单位缴费                  个人缴费                  保险补缴年月---- ------ ----------- --------------------------------------- --------------------- --------------------- ---------------------001  王小光    6600        0.1                                     1320.00               1320.00               200704-200705001  王小光    5500        0.1                                     550.00                550.00                200706001  王小光    5500        0.2                                     1100.00               1100.00               200707002  肖光     6879        0.1                                     687.90                687.90                200705(4 行受影响) 

热点排行