《2022年经常用到的交叉表问题,一般用动态SQL能生成动态列!SQL server]教程.docx》由会员分享,可在线阅读,更多相关《2022年经常用到的交叉表问题,一般用动态SQL能生成动态列!SQL server]教程.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022年经常用到的交叉表问题,一般用动态SQL能生成动态列!SQL server教程原始表如下格式:Class CallDate CallCount1 2022-8-8 401 2022-8-7 62 2022-8-8 773 2022-8-9 333 2022-8-8 93 2022-8-7 21依据Class的值,按日期分别统计出CallCount1,CallCount2,CallCount3。当该日期无记录时值为0要求合并成如下格式:CallDateCallCount1CallCount2CallCount32022-8-90 0 332022-8-8407792022-8-76 0
2、21-创建测试环境Create table T (Class varchar(2),CallDate datetime, CallCount int)insert into T select 1,2022-8-8,40union all select 1,2022-8-7,6union all select 2,2022-8-8,77union all select 3,2022-8-9,33union all select 3,2022-8-8,9union all select 3,2022-8-7,21-动态SQLdeclare s varchar(8000)set s=select C
3、allDate select s=s+,CallCount+Class+=sum(case when Class=+Class+ then CallCount else 0 end)from Tgroup by Classset s=s+ from T group by CallDate order by CallDate desc exec(s)-结果CallDate CallCount1 CallCount2 CallCount3- - - -2022-08-09 00:00:00.000 0 0 332022-08-08 00:00:00.000 40 77 92022-08-07 00:00:00.000 6 0 21-删除测试环境drop table T