您的位置:首页 > 编程语言 > C#

C# 处理Word自动生成报告 二、数据源例子

2017-11-23 20:52 495 查看
C# 处理Word自动生成报告 一、概述

C# 处理Word自动生成报告 二、数据源例子

C# 处理Word自动生成报告 三、设计模板

C# 处理Word自动生成报告 四、程序处理

还是以学生、语文、数学、分数为例吧, 感觉这个和helloworld都有一拼了.

造一张表如下, 整张报表就围绕这个表转圈了, 顺便说下就是名字如有雷同纯属巧合

ALTER PROCEDURE [dbo].[StudentReport]
AS
BEGIN

select 学期,max(总分) 最高总分 from(select 学期,姓名, sum(分数) as 总分 from 学生分数 group by 学期, 姓名) a group by 学期; --按学期循环

select 课程, avg(分数) as 平均分,学期 from 学生分数 group by 学期, 课程; --各科平均分Table

select 学期,姓名, avg(分数) as 学生学期平均分 from 学生分数 group by 学期, 姓名; -- 按学期\学生循环

select 学期,课程,分数,姓名,0 as summary from 学生分数 --每个学期当前学生的各科分数 table
union all
select 学期,'',sum(分数),姓名,1 from 学生分数 group by 学期, 姓名;--合计

select 课程, avg(分数) as 平均分 from 学生分数 group by 课程;

DECLARE @sql_col VARCHAR(8000);
SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME(课程) FROM 学生分数 GROUP BY 课程;

DECLARE @sql VARCHAR(8000);
select @sql = '
SELECT * FROM
(
select 学期,课程, avg(分数) as 平均分 from 学生分数 group by 学期, 课程
) as tb pivot( MAX(平均分) FOR 课程 in ('+ @sql_col +')) a';
exec(@sql);  --图表1   月/人报修柱状图

select 姓名,课程,分数,学期 from 学生分数 --每个学期当前学生的各科分数 table

select max(分数) as 最高分,avg(分数) as 平均分,GETDATE() as 报告时间 from 学生分数;--综述

END


View Code
返回结果如下:





一共返回8张表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: