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

这样的格式用SQL怎么实现,高分求助

楼主lchen88(蓝天白云)2005-02-01 17:20:02 在 MS-SQL Server / 应用实例 提问

如题  
  日期           序号  
  2004-10-22   14:44:45.000 200410000006  
  2004-10-22   10:44:12.657 200410000008  
  2004-10-22   10:48:18.890 200410000009  
  2004-10-23   10:49:02.187 200410000010  
  2004-10-26   14:23:45.093 200410000011  
  2004-10-27   12:06:31.967 200410000012  
  2004-10-27   12:09:44.577 200410270001  
  2004-10-27   14:27:07.797 200411030001  
   
   
  日期           序号  
  2004-10-22   14:44:45.000 200410000006  
  2004-10-22   10:44:12.657 200410000008  
  2004-10-22   10:48:18.890 200410000009  
                        小计                                                 3  
  2004-10-23   10:49:02.187 200410000010  
                        小计                                                 1  
  2004-10-26   14:23:45.093 200410000011  
                        小计                                                 1  
  2004-10-27   12:06:31.967 200410000012  
  2004-10-27   12:09:44.577 200410270001  
  2004-10-27   14:27:07.797 200411030001  
                        小计                                                 3  
                        合计                                                 8        
  问题点数:50、回复次数:3Top

1 楼hai2003xp(古井小调)回复于 2005-02-01 17:25:58 得分 10

select   日期,序号   from   tb    
  union   all   select   '小计',count(*)   from   tb   group   by   convert(varchar(10),日期,120)  
  union   all   select   '合计',count(*)   from   tbTop

2 楼Qihua_wu(小吴)回复于 2005-02-01 17:30:56 得分 10

select   case   when   len(日期)<10   then   '小计'   else   日期   end,序号  
  from  
  (  
  select   convert(varchar,日期,120)   日期   ,序号   from   tablename  
  union   all  
  select   convert(varchar,日期,111),convert(varchar,count(*))  
  from   tablename  
  group   by   convert(datetime,convert(varchar,日期,111)+'23:59:59'))  
  order   by   日期)  
  union   all  
  select   '合计',convert(varchar,count(*))   from   tablename  
  Top

3 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-02-01 17:55:24 得分 30

--生成测试数据:  
  create   table   #t(  
  日期     datetime,  
  序号     varchar(20))  
   
  insert   into   #t   select   cast('2004-10-22   14:44:45.000'   as   datetime),'200410000006'  
  insert   into   #t   select   cast('2004-10-22   10:44:12.657'   as   datetime),'200410000008'  
  insert   into   #t   select   cast('2004-10-22   10:48:18.890'   as   datetime),'200410000009'  
  insert   into   #t   select   cast('2004-10-23   10:49:02.187'   as   datetime),'200410000010'  
  insert   into   #t   select   cast('2004-10-26   14:23:45.093'   as   datetime),'200410000011'  
  insert   into   #t   select   cast('2004-10-27   12:06:31.967'   as   datetime),'200410000012'  
  insert   into   #t   select   cast('2004-10-27   12:09:44.577'   as   datetime),'200410270001'  
  insert   into   #t   select   cast('2004-10-27   14:27:07.797'   as   datetime),'200411030001'  
   
   
  --执行查询:  
  select  
          case   when   (a.dates   is   null   and   a.序号   is   null)   then   '合计'  
                    when   (a.序号   is   null)   then   '小计'  
                    else   convert(varchar(21),b.日期,120)    
          end   as   日期,  
          case   when   (a.序号   is   not   null)   then   a.序号    
                    else   rtrim(a.counts)    
          end   as   序号  
  from  
          (select    
                    convert(char(10),日期,120)   as   dates,  
                    序号,        
                    count(*)   as   counts  
            from      
                    #t  
            group   by  
                    convert(char(10),日期,120)   ,序号   WITH   ROLLUP)   a  
  left   join  
          #t   b  
  on  
          a.序号   =   b.序号  
   
   
  --查看结果:  
   
  日期                                               序号  
  ---------------------------------------  
  2004-10-22   14:44:45                 200410000006  
  2004-10-22   10:44:12                 200410000008  
  2004-10-22   10:48:18                 200410000009  
  小计                                     3  
  2004-10-23   10:49:02                 200410000010  
  小计                                     1  
  2004-10-26   14:23:45                 200410000011  
  小计                                     1  
  2004-10-27   12:06:31                 200410000012  
  2004-10-27   12:09:44                 200410270001  
  2004-10-27   14:27:07                 200411030001  
  小计                                     3  
  合计                                     8  
  Top

相关问题

  • 送分,存储格式怎样实现
  • 在sql中如何实现指定的日期格式?
  • 如何实现pdf格式文件在线浏览?送100分~
  • 如何在textbox中实现千分位和小数格式?
  • 高分求獲得如下格式表的sql語句,急!
  • 高分请教--高手进.如何用代码实现 格式化硬盘...(看清楚不是格式化A盘)
  • 怎么实现将tif格式的图片转换成jpg格式? (50分 一定结贴)
  • 将DMF格式的数据导入SQL库中,怎么进行,怎么个步骤,用PB编程实现
  • 如何用vb语言实现把sql server 2000中的数据导出成dbf 文件格式
  • 问个SQL语句格式

关键词

  • 小计
  • 序号2004
  • 日期
  • 合计
  • count
  • union all select
  • from tb

得分解答快速导航

  • 帖主:lchen88
  • hai2003xp
  • Qihua_wu
  • libin_ftsafe

相关链接

  • SQL Server类图书

广告也精彩

反馈

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