CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

一个简单的SQL语句,问题?在线等待!

楼主jsjkhanwei(小伟)2005-06-23 10:30:02 在 MS-SQL Server / 基础类 提问

有一个表(xs):字段如下:  
  YEAR         MONTH       JE     TYPE    
  2005             1           10       0  
  2005             1           15       0  
  2005             1           13       0  
  2005             1           -8       1  
  2005             2         -12       1  
  2005             1         -15       1  
   
  用什么样的SQL语句才能实现如下的要求呢?  
   
  YEAR       MONTH     JE       TKJE     TYPE    
  2005         1           10         0         0  
  2005         1           15         0         0  
  2005         1           13         0         0  
  2005         1           0           -8       1  
  2005         2           0           -12     1  
  2005         1           0           -15     1  
   
  要求是根据TYPE   的值为1的分解到“TKJE”中来呢?  
   
  问题点数:99、回复次数:13Top

1 楼filebat(Mark)回复于 2005-06-23 10:37:00 得分 0

--抢先贴个数据  
  if   object_id('ta')   is   not   null   drop   table   ta  
  go  
  create   table   ta(year   int,     month   int,   je   int,   type   int)  
  insert   ta     select   2005,   1,   10,   0  
  union   all     select   2005,   1,   15,   0  
  union   all     select   2005,   1,   13,   0  
  union   all     select   2005,   1,   -8,   1  
  union   all     select   2005,   2,   -12,   1  
  union   all     select   2005,   1,   15,   1  
   
   
  Top

2 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-23 10:39:43 得分 10

 
   
  Select    
  YEAR,  
  MONTH,  
  (Case   When   TYPE=1   Then   0   Else   JE   End)   As   JE,  
  (Case   When   TYPE=1   Then   JE   Else   0   End)   As   TKJE,  
  TYPE    
  from   xsTop

3 楼filebat(Mark)回复于 2005-06-23 10:39:53 得分 10

select   year,   month,   je=(case   type  
  when   1   then   0  
  else   je   end),  
          tkje=(case   type  
  when   1   then   je  
  else   0   end),   type  
  from   taTop

4 楼phantomMan()回复于 2005-06-23 10:40:07 得分 61

select   [year],  
  [month],  
  Case   type   when   0   then   JE   else   0   end   as   JE,  
  Case   type   when   1   then   JE   else   0   end   as   TKJE,  
  Type  
  from   XS  
  Top

5 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-23 10:43:38 得分 9

--建立测试环境  
  If   OBJECT_ID('xs')   Is   Not   Null   Drop   Table   xs  
  GO  
  Create   Table   xs(YEAR   Int,MONTH   Int,JE   Int,TYPE   Int)  
  Insert   xs     Select   2005,   1,   10,   0  
  Union   All     Select   2005,   1,   15,   0  
  Union   All     Select   2005,   1,   13,   0  
  Union   All     Select   2005,   1,   -8,   1  
  Union   All     Select   2005,   2,   -12,   1  
  Union   All     Select   2005,   1,   15,   1  
  --测试  
  Select    
  YEAR,  
  MONTH,  
  (Case   When   TYPE=1   Then   0   Else   JE   End)   As   JE,  
  (Case   When   TYPE=1   Then   JE   Else   0   End)   As   TKJE,  
  TYPE    
  from   xs  
  --删除测试环境  
  Drop   Table   xs  
  --结果  
  /*  
  YEAR MONTH JE TKJE TYPE  
  2005 1 10 0 0  
  2005 1 15 0 0  
  2005 1 13 0 0  
  2005 1 0 -8 1  
  2005 2 0 -12 1  
  2005 1 0 15 1  
  */Top

6 楼filebat(Mark)回复于 2005-06-23 10:44:08 得分 0

游鱼真是快啊...  
  我昨天专家分突破了一千大关,   高兴,   庆祝一下.Top

7 楼hsj20041004(光芒)回复于 2005-06-23 10:44:48 得分 9

select   YEAR,MONTH,JE=case   type   when   0   then   je   else   0   end,  
          TKJE   =case   TYPE     when   1   then   je   else   0   end   ,type   from   xsTop

8 楼softj(天地客人<最近很迷茫>)回复于 2005-06-23 10:49:28 得分 0

update   xs   set   TKJE   =   je,   je   =   0   where   TYPE     =1Top

9 楼hsj20041004(光芒)回复于 2005-06-23 10:51:46 得分 0

好热闹!!Top

10 楼jsjkhanwei(小伟)回复于 2005-06-23 10:59:41 得分 0

感谢各位,我正在测试,一会加分Top

11 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-23 11:05:44 得分 0

filebat(Mark),那还不去开贴散分,^_^Top

12 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-23 11:19:26 得分 0

楼主,没有搞错吧?!!!!!Top

13 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-23 11:21:03 得分 0

我和filebat(Mark)写的不对吗??请就你的给分给出你的解释。Top

相关问题

  • 简单sql语句
  • 简单问题——关于SQL语句——在线等待
  • 帮帮啊。简单的SQL语句。在线等待!
  • 关于SQL语句的一个简单问题!(在线等待)
  • 来看看我简单的sql语句。在线等待
  • 在线等待,求一简单SQL语句~
  • 很简单的sql语句问题。(在线等待)
  • ########### 求一段简单的SQL语句 在线等待 ############
  • #################求一段简单的SQL语句 在线等待#####################
  • 简单的SQL语句问题(在线等待)

关键词

  • tkje
  • je
  • union
  • xs
  • month
  • ta
  • year
  • allselect2005
  • case
  • then

得分解答快速导航

  • 帖主:jsjkhanwei
  • paoluo
  • filebat
  • phantomMan
  • paoluo
  • hsj20041004

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo