CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求汇总排序更简单的写法

楼主shien(shien)2005-12-01 16:38:03 在 MS-SQL Server / 基础类 提问

一个表#t1  
  shop,   type,year,seas,quty  
  店铺1     往季   2005   春季   50  
  店铺1     往季   2005   秋季   50  
  店铺1     往季   2004   秋季   50  
  店铺1     往季   2003   秋季   50  
  店铺1     当季   2005   冬季   50  
  店铺2     当季   2005   冬季   50  
  .....  
   
  汇总结果  
  店铺1     往季   2005               春季   50  
  店铺1     往季   2005               秋季   50  
  店铺1     往季   2005小计                 100  
  店铺1     往季   2004               秋季   50  
  店铺1     往季   2004小计                 50  
  店铺1     往季   2003               秋季   50  
  店铺1     往季   2003小计                 50  
  店铺1     往季小计                           200  
  店铺1     当季   2005               冬季   50  
  店铺1     当季   2005小计                 50  
  店铺1合计                                       250  
  店铺2......  
   
  我的写法是用3个游标,分别将店铺、类别,年份的汇总按序插入临时表中,  
  最后输出临时表  
   
  觉得这样做,代码较长,有无简单的方法呢。  
   
  问题点数:20、回复次数:6Top

1 楼wgsasd311(自强不息)回复于 2005-12-01 16:45:54 得分 3

select   *   from   (  
  select   *   from   tb    
  union   all  
  select   shop,type,year,'小计',sum(quty)   from   tb   group   by   shop,type,year)   a  
  order   by   shopTop

2 楼lsp69(浪子神剑)回复于 2005-12-01 16:59:42 得分 2

select   *   from   (  
  select   *   from   tb    
  union   all  
  select   shop,type,year,'小计',sum(quty)   from   tb   group   by   shop,type,year)   a  
  order   by   shop  
  正解Top

3 楼shien(shien)回复于 2005-12-01 17:54:23 得分 0

不行啊,排序不对,小计都跑到下面去了Top

4 楼shien(shien)回复于 2005-12-01 17:57:47 得分 0

楼上的结果是  
  店铺   当季   2005   冬  
  店铺   当季   2005   春  
  店铺   当季   2005   夏  
  店铺   当季   2005   小计  
  店铺   过季   1999   小计  
  店铺   过季   2000   小计  
  ....  
  店铺   过季   1999   秋季  
  店铺   过季   2000   春季  
  .....Top

5 楼gaojie001(高洁)回复于 2005-12-01 19:38:47 得分 0

aaTop

6 楼qiqingshizhe(凄清使者)回复于 2005-12-01 21:34:38 得分 15

select   shop,type,year,seas,quty  
  from(  
  select   shop,type,year,seas,quty=sum(quty),s1=0,s2=0  
  from   t1  
  group   by   shop,type,year,seas  
  union   all  
  select   shop,type,year+'小計','',quty=sum(quty),s1=0,s2=1  
  from   t1  
  group   by   shop,type,year  
  union   all  
  select   shop,type+'小計','','',quty=sum(quty),s1=0,s2=0  
  from   t1  
  group   by   shop,type  
  union   all  
  select   shop+'閤計','','','',quty=sum(quty),s1=1,s2=0  
  from   t1  
  group   by   shop  
  )a  
  order   by   substring(shop,3,1),s1,charindex(left(type,2),'往季,當季'),  
  left(year,4)   desc,s2,charindex(seas,'春季,夏季,鞦季,鼕季')    
   
   
     
   
   
  Top

相关问题

  • 简单排序
  • 求一条排序语句的写法
  • 分类汇总的sql写法
  • 简单除发器写法!
  • 简单的排序问题
  • 简单的排序问题
  • 简单帖子排序
  • 排序的简单问题
  • 关于直接插入排序法,请教更快的写法.
  • 求一sql语句写法,在线等!(求和后再排序)

关键词

  • 店铺
  • quty
  • 小计
  • 当季2005
  • t1group
  • allselect
  • 汇总
  • aorder
  • seas
  • shop

得分解答快速导航

  • 帖主:shien
  • wgsasd311
  • lsp69
  • qiqingshizhe

相关链接

  • SQL Server类图书

广告也精彩

反馈

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