前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 处理Word自动生成报告 二、数据源例子

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

作者头像
FlyLolo
发布2018-05-17 15:23:05
1.1K0
发布2018-05-17 15:23:05
举报
文章被收录于专栏:Core Net

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

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

新建个存储过程

代码语言:javascript
复制
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

返回结果如下:

一共返回8张表

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档