|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
原始表如下格式: 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 返回类别: 教程 上一教程: 为数据库建立索引(二) 下一教程: MS SQL SERVER中如何得到表的创建语句 您可以阅读与"常常用到的交叉表问题,一般用动态SQL能生成动态列!"相关的教程: · 关于MSSQL占用过多内存的问题 · 如何解决SQL SERVER 2000中的连接问题 · SQL SERVER 数据库治理常用的SQL和T-SQL语句 · SQL SERVER应用问题解答13例(一) · 关于MYSQL 4.1语言问题的完美解决方式 |
| 快精灵印艺坊 版权所有 |
首页 |
||