CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

急.........!请高手帮我!

楼主lijun2000(德国)2006-05-04 12:28:48 在 MS-SQL Server / 疑难问题 提问

这样的一个表:数据如下:(表A)  
  WorkshopNO   Category     InfoName                     Year           Qutarter   Unit           Amount    
    1            间接成本 低级技工薪水工资     2004             1               $     69582.62  
    1            间接成本 低级技工薪水工资     2004             2               $     47679.10  
    1            间接成本 低级技工薪水工资     2004             3               $     46582.34  
    1            间接成本     低级技工薪水工资     2004             4               $     61066.26  
    1            间接成本     监督人员薪水工资     2004             1               $     30388.74  
    1            间接成本     监督人员薪水工资     2004             2               $     30388.74  
    1            间接成本     监督人员薪水工资     2004             3               $     30388.74  
    1            间接成本     监督人员薪水工资     2004             4               $         30388.74  
  用什么方法能得到这样的显示结果:(表B)  
   
  WorkshopNO             Qutarter1 Qutarter2 Qutarter3 Qutarter4   Unit                
   1       69582.62 47679.10   46582.34  46582.34  $  
   1       30388.74 30388.74   30388.74  30388.74  $   
  也就是说把表A中的四个秀度在表B中分列显示?会的请答复,谢谢 问题点数:40、回复次数:5Top

1 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:40:20 得分 0

create   table   tb(WorkshopNO   int,Category   varchar(20),InfoName   varchar(20),[Year]   int,Qutarter   int,Unit   varchar(10),Amount   dec(18,2))  
  insert   into   tb   select   1,'间接成本','低级技工薪水工资',2004,1,'$',69582.62  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,2,'$',47679.10  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,3,'$',46582.34  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,4,'$',61066.26  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,1,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,2,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,3,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,4,'$',30388.74  
   
  select   [WorkshopNO],  
                [Qutarter1]=sum(case   Qutarter   when   1   then   Amount   else   0   end),  
                [Qutarter2]=sum(case   Qutarter   when   2   then   Amount   else   0   end),  
                [Qutarter3]=sum(case   Qutarter   when   3   then   Amount   else   0   end),  
                [Qutarter4]=sum(case   Qutarter   when   4   then   Amount   else   0   end),  
                [Unit]  
  from   tb  
    group   by   [InfoName],[WorkshopNO],[Unit]  
   
   
  drop   table   tb  
  Top

2 楼lijun2000(德国)回复于 2006-05-04 12:44:53 得分 0

你给的只能处理8条数据,但超过了怎么办才好?Top

3 楼yanglszt(YangLing)回复于 2006-05-04 12:46:44 得分 0

select   WorkShopNo,  
  case   when   Qutarter=1   then   Amount   end   as   Qutarter1,  
  case   when   Qutarter=2   then   Amount   end   as   Qutarter2,  
  case   when   Qutarter=3   then   Amount   end   as   Qutarter3,  
  case   when   Qutarter=4   then   Amount   end   as   Qutarter4,  
  Unit,InfoName  
  from   表A    
  group   by   WorkShopNo,Unit,InfoName    
  order   by   WorkShopNoTop

4 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:47:30 得分 0

create   table   tb(WorkshopNO   int,Category   varchar(20),InfoName   varchar(20),[Year]   int,Qutarter   int,Unit   varchar(10),Amount   dec(18,2))  
  insert   into   tb   select   1,'间接成本','低级技工薪水工资',2004,1,'$',69582.62  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,2,'$',47679.10  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,3,'$',46582.34  
  union   all   select   1,'间接成本','低级技工薪水工资'   ,2004,4,'$',61066.26  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,1,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,2,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,3,'$',30388.74  
  union   all   select   1,'间接成本','监督人员薪水工资'   ,2004,4,'$',30388.74  
   
  select   [WorkshopNO],  
                [Qutarter1]=sum(case   Qutarter   when   1   then   Amount   else   0   end),  
                [Qutarter2]=sum(case   Qutarter   when   2   then   Amount   else   0   end),  
                [Qutarter3]=sum(case   Qutarter   when   3   then   Amount   else   0   end),  
                [Qutarter4]=sum(case   Qutarter   when   4   then   Amount   else   0   end),  
                [Unit]  
  from   tb  
    group   by   [WorkshopNO],[InfoName],[Unit]  
   
   
  drop   table   tbTop

5 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 12:47:57 得分 40

select   [WorkshopNO],  
                [Qutarter1]=sum(case   Qutarter   when   1   then   Amount   else   0   end),  
                [Qutarter2]=sum(case   Qutarter   when   2   then   Amount   else   0   end),  
                [Qutarter3]=sum(case   Qutarter   when   3   then   Amount   else   0   end),  
                [Qutarter4]=sum(case   Qutarter   when   4   then   Amount   else   0   end),  
                [Unit]  
  from   tb  
    group   by   [WorkshopNO],[InfoName],[Unit]  
  --上面的是测试用的,你用这条就可以了Top

相关问题

关键词

得分解答快速导航

  • 帖主:lijun2000
  • xeqtr1982

相关链接

  • SQL Server类图书

广告也精彩

反馈

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