免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1319 | 回复: 7
打印 上一主题 下一主题

请求帮助数据转换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-17 21:58 |只看该作者 |倒序浏览
想将以下个人数据补全至2005年
源数据如下:
序号,单位名称,姓名,公民顺序号,单位顺序号,开始年月,终止年月,缴费基数
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200201,200212,1022
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200301,,0
1,道孚县八美镇,徐德珍,513326195701112028,108000208718,108000101814,200401,200412,1352
需要的结果数据数据:
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200201,200212,1022
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200301,,0
,,,,,,200401,,
,,,,,,200501,,
1,道孚县八美镇,徐德珍,513326195701112028,108000208718,108000101814,200401,200412,1352
,,,,,,200501,,
以第6列的最后一个数为基础,现在要把这些人的数据补全到2005年
注:每个人的第6列(即:“开始日期”列)的最大值是不固定的,可能是200301,可能是200201,也可能是199801……

论坛徽章:
0
2 [报告]
发表于 2006-01-17 22:34 |只看该作者
没看懂呀、你的数据好像没有变化呀,怎么补呀~~!!!、

论坛徽章:
0
3 [报告]
发表于 2006-01-17 22:48 |只看该作者

回复 2楼 技安 的帖子

原数据中第一个人只有2行,第2个人只有一行,以第6列为标准,如果一个人第6列的最大一个年月小于200501,
那么就在下面放入新行,新行的值:除第6列的值递增加100,直到增加到200501,新行其它数据列的值都全部为空。

论坛徽章:
0
4 [报告]
发表于 2006-01-17 22:54 |只看该作者
晕、那不是第七列吗?

论坛徽章:
0
5 [报告]
发表于 2006-01-17 23:01 |只看该作者

回复 4楼 技安 的帖子

哦!是第七列。不好意思。重写一下:
原数据如下:
序号,单位名称,姓名,公民顺序号,单位顺序号,个人顺序号,开始年月,终止年月,缴费基数
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200201,200212,1022
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200301,,0
1,道孚县八美镇,徐德珍,513326195701112028,108000208718,108000101814,200401,200412,1352
需要的结果数据数据:
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200201,200212,1022
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200301,,0
,,,,,,200401,,
,,,,,,200501,,
1,道孚县八美镇,徐德珍,513326195701112028,108000208718,108000101814,200401,200412,1352
,,,,,,200501,,
以第7列的最后一个数为基础,现在要把这些人的数据补全到2005年
注:每个人的第7列(即:“开始日期”列)的最大值是不固定的,可能是200301,可能是200201,也可能是199801……
原数据中第一个人只有2行,第2个人只有一行,以第7列为标准,如果一个人第7列的最大一个年月小于200501,
那么就在下面放入相应新行,新行的值:除第7列的值递增加100,直到增加到200501,新行其它数据列的值都全部为空。

论坛徽章:
0
6 [报告]
发表于 2006-01-17 23:13 |只看该作者
sort -t, -k1 -k2 -k3 +6n filename |awk ' { b[$1$2$3]=$1","$2","$3"," ;a[$1$2$3]=$7 } END  { for ( i in a ) {  if ( a[i] < 200512 ) { for ( tmp=a[i]; tmp < 200512; tmp+=100) { print b[i]",  , ,"tmp", , "} } } } '

-------------

[aluns]~/atmp>cat aa
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200201,200212,1022
1,道孚县八美工委,白玛优英,513326197307022023,108000208027,108000101721,200301,,0
1,道孚县八美镇,徐德珍,513326195701112028,108000208718,108000101814,200401,200412,1352
[aluns]~/atmp>sort -t, -k1 -k2 -k3 +6n aa | awk -F, ' { b[$1$2$3]=$1","$2","$3"," ;a[$1$2$3]=$7 } END  { for ( i in a ) {  if ( a[i] < 200512 ) { for ( tmp=a[i]; tmp < 200512; tmp+=100) { print b[i]",  , ,"tmp", , "} } } } '
1,道孚县八美镇,徐德珍,,  , ,200401, ,
1,道孚县八美镇,徐德珍,,  , ,200501, ,
1,道孚县八美工委,白玛优英,,  , ,200301, ,
1,道孚县八美工委,白玛优英,,  , ,200401, ,
1,道孚县八美工委,白玛优英,,  , ,200501, ,

论坛徽章:
0
7 [报告]
发表于 2006-01-17 23:14 |只看该作者
晕,把原来的丢了,我再想想。

论坛徽章:
0
8 [报告]
发表于 2006-01-17 23:34 |只看该作者

回复 6楼 技安 的帖子

真是谢谢你!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP