欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

如何写这个sql语句

更新时间: 2014-01-05 02:12:03 责任编辑: Author_N1

 

求助怎么写这个sql语句
现在有一张表 字段 id  value 需要统计出这样一个数据表:
------------------
id         value
100        2000
101        200
102        400
103        600
104        800
-------------------
实际在表中的数据是这样 
-------------------
id         value
100        800
101        200
102        400
103        600
104        0
-------------------
就是把id为100的值转换为id为104的值,同时id为100的value为其他四个的总和
--参考方法--
引用:
with t as 
(
select 100 id ,800 value from dual 
union all
select 101 id ,200 value from dual 
union all
select 102 id ,400 value from dual 
union all
select 103 id ,600 value from dual 
union all
select 104 id ,0 value from dual 
)
select 100 id,sum(value) from t 
union all
select decode(id,100,104,id),value from t where id<>104 order by id


with t as ( select 100 id ,800 value from dual 
 union ALL select 101 id ,200 value from dual 
  union ALL select 102 id ,400 value from dual 
   union ALL select 103 id ,600 value from dual
     union ALL select 104 id ,0 value from dual  ) 
SELECT T.ID,
       DECODE(T.ID,
              104,
              (SELECT VALUE FROM T WHERE ID = 100),
              100,
              (SELECT SUM(VALUE) FROM T WHERE ID <> 104),
              T.VALUE)
  FROM T T
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:03
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6880/
本文WWW.DOC100.NET DOC100.NET版权所有。