资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> ASP.NET编程 >> 数据库应用 >> 文档正文
最近更新
普通文档 SQL2000的XML功能将现有
普通文档 使用SQLServer2000将现有
普通文档 如何在DataGrid绑定之前
普通文档 使用DataReader还是Data
普通文档 Sql与Asp.Net数据类型对
普通文档 SQL查询语句对象化的实现
普通文档 在ADO.NET数据集中浏览多
普通文档 Web中DataGrid绑定数据显
推荐文档 SQL server 系统储存过程
推荐文档 经常用到的交叉表问题,一
推荐文章
推荐文档 SQL server 系统储存过程
推荐文档 经常用到的交叉表问题,一
推荐文档 使用ADO.NET轻松操纵数据
推荐文档 ASP.NET中数据库数据导入
推荐文档 定制DataGrid的外观
推荐文档 保存图片到SQL 2000 Ser
推荐文档 关于DataGrid的动态排序
经常用到的交叉表问题,一般用动态SQL能生成动态列!

文章作者:佚名 录入时间:2006-6-13 来源:不详
网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。


原始表如下格式:
Class     CallDate    CallCount
1     2005-8-8    40
1     2005-8-7    6
2     2005-8-8    77
3     2005-8-9    33
3     2005-8-8    9
3     2005-8-7    21

根据Class的值,按日期分别统计出CallCount1,CallCount2,CallCount3。
当该日期无记录时值为0
要求合并成如下格式:
CallDate  CallCount1  CallCount2  CallCount3
2005-8-9  0       0       33
2005-8-8  40      77      9
2005-8-7  6       0       21

--创建测试环境
Create table  T  (Class varchar(2),CallDate datetime, CallCount int)
insert into T select '1','2005-8-8',40
union all select '1','2005-8-7',6
union all select '2','2005-8-8',77
union all select '3','2005-8-9',33
union all select '3','2005-8-8',9
union all select '3','2005-8-7',21
--动态SQL
declare @s varchar(8000)
set @s='select CallDate '
select @s=@s+',[CallCount'+Class+']=sum(case when Class='''+Class+''' then CallCount else 0 end)'
from T
group by Class
set @s=@s+' from T group by CallDate order by CallDate desc '
exec(@s)

--结果

CallDate                                               CallCount1  CallCount2  CallCount3 
------------------------------------------------------ ----------- ----------- -----------
2005-08-09 00:00:00.000                                0           0           33
2005-08-08 00:00:00.000                                40          77          9
2005-08-07 00:00:00.000                                6           0           21

--删除测试环境

drop table T

  • 上一篇文档:

  • 下一篇文档:
  •     查找更多“经常用到的交叉表问题,一般用动态SQL能生成动态列!”的内容  
    相关连接
  • 如何在DataGrid绑定之前为DataSet添加新列

  • 使用DataReader还是DataSet?

  • Sql与Asp.Net数据类型对应(引用MsDN)

  • SQL查询语句对象化的实现(C#)

  • 在ADO.NET数据集中浏览多个相关表(6篇)(1)