ITPub博客

首页 > 数据库 > 数据库开发技术 > UPDATE 单表内更新字段1 来自查询的记录

UPDATE 单表内更新字段1 来自查询的记录

原创 数据库开发技术 作者:yunchat 时间:2005-10-11 09:31:28 0 删除 编辑

1检索大于日期大于15号的数据获得2和5记录   
2对记录2的其他主键为10,10,10,1000,101 。再与TKY_STR_YMD=2005-05-15合并作为新主建
 对记录5的其他主键为10,10,10,2000,101 。再与TKY_STR_YMD=2005-05-15合并作为新主建
  
3按照主键10,10,10,1000,101 2005-05-15会得到记录1对它进行更新 
 设置TKY_END_YMD=记录2的TKY_STR_YMD-1 
  
 按照主键10,10,10,2000,101 2005-05-15会得到记录1对它进行更新 
 设置TKY_END_YMD=记录5的TKY_STR_YMD-1   

[@more@]

23456
101010101010
101010101010
101010101010
100010001000200020003000
101101101101101101
2005-05-152005-05-192005-05-142005-05-152005-05-222005-05-15
9999-12-319999-12-319999-12-319999-12-319999-12-319999-12-31
100020003000100010001000
  
      
23456
101010101010
101010101010
101010101010
100010001000200020003000
101101101101101101
2005-05-152005-05-192005-05-142005-05-152005-05-222005-05-15
2005-5-189999-12-319999-12-312005-5-219999-12-319999-12-31
100020003000100010001000
  
      

UPDATE RDMT_CLS aa SET aa.TKY_END_YMD = (SELECT MIN(TKY_STR_YMD)-1 from RDMT_CLS bb
WHERE aa.KGY_GRP_CD = bb.KGY_GRP_CD and aa.KGY_CD= bb.KGY_CD and aa.MS = bb.MS and aa.HNBN = bb.HNBN AND aa.CLS = bb.cls AND bb.TKY_STR_YMD>TO_DATE('2005/05/15','yyyy/mm/dd'))
WHERE (aa.KGY_GRP_CD,aa.KGY_CD,aa.MS,aa.HNBN,aa.CLS) IN (SELECT KGY_GRP_CD,KGY_CD,MS,HNBN,CLS
FROM RDMT_CLS WHERE TKY_STR_YMD>TO_DATE('2005/05/15','yyyy/mm/dd')) AND aa.TKY_STR_YMD =TO_DATE('2005/05/15','yyyy/mm/dd');

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/118026/viewspace-806417/,如需转载,请注明出处,否则将追究法律责任。

下一篇: PL/SQL 中使用DDL
请登录后发表评论 登录
全部评论
  • 博文量
    32
  • 访问量
    955594