程序报表制作

                程序报表制作总结            

                                       题记:一颗不甘平凡的心,促使我进步

        无论你是数据库工程师,还是语言工程师,或多或少一定会接触过报表,并从中吸收,成长,进步。但是LZ个人在刚入门的时候也是存在一些困惑,遇到一些理解上的障碍,导致工作中走了很多弯路,并且很少有人分享这方面的内容(可能大神觉得这些 太low,没什么技术含量,没分享的必要),可是我却遇在其中挣扎,迷失过,所以这里和新人分享一些心得,希望对菜鸟程序员有一些帮助(仅限个人经验的总结,大神不喜勿喷),作为第一篇博客,我想还是写一些自己心得感触比较深的吧,毕竟干了两三年了

       一、报表的定位

        报表是什么?从来没有过明确的定义,只不过工作经验多了,做的多了,自然就会明白什么是报表了。       

        这里我描述下我对报表的认识,方便新人对其有一个整体性的认识,报表,顾名思义,就是像报纸一样的表格,报纸具有哪些特性?(这里因人而异,每个人关注不同领域的报纸,获取的信息是不同的),而在it中,有那么多数据(信息),虽然大多数都存储在关系型数据中,但是都不会给人一个直观的感受,因此,为了方便老板,或者董事,或者职能部门能对得来不易的数据,进行有效的分析,进而导致产生报表的产生,也就是说,报表是数据分析的基础,只有打牢制作报表和阅读报表的基础,才具备数据分析的这种高端技术的门槛。

        这里简单做一个定义吧! 报表,是通过各种技术,联合数据库中的多张表,进而形成的具有一定业务价值的,可作为判断依据的虚拟表,称之为报表。

        二、报表的分类与制作时间预期

        现阶段,我对报表的分类,可分为三大类,

        第一类,基础数据连接型报表

        第二类,数据汇总类报表

        第三类,数据分析型报表

        三类报表的制作和开发难度是依次递增的数据分析型报表只做开发难度>数据汇总类报表难度>基础数据连接型报表

        接下来简单介绍一下,三类报表开发时候所涉及的技术,和一些与其相关的内容

        第一类报表是最简单的,适合新员工,或者实习期的员工开发,这类报表具有一些通性特点,就是数据间的关系并不复杂,大多都是通过,连接查询,或者子查询等将多张数据库中存在的表,通过主键、外键、联合主键、或者连接查询等方式形成的,所以这类报表适合新员工、或者实习期的员工开发,不但可以快熟的熟悉数据库中的表结构,还能夯实数据库基础

        这里需要注意下,主流的数据库如Oracle,MySQL,SQL server 等由于其语法的不同,在制作相同的报表的时候,采用的形式可能是多种多样的,因此,需要额外注意的是SQL的写法,虽然很基础,但是想做到多类型数据库都能得心应手,还是需要一定时间的

        再来说说开发周期,这类报表,在不熟悉的数据库表间结构的时候,开发起来也是很吃力的,但是当熟悉了表间结构,做起来,速度就飞起了,通常再不熟悉表结构的时候的开发周期在半天一张左右,当然这里,也不排除特例,比如一张报表字段特别多,而数据源有来源很多张不同的表,这个时候,简单的表也会变的复杂。开发周期应适当延长

        对第一类报表制作的时候一定要对表有主从的概念,什么是主从,就是主人和随从的关系,主表,通常是数据的总要来源(  也有例外,但并不多见,具体情况具体分析 ),从表,会将自己表中具有的字段,通过某种方式拼接到主表上,进而形成一张报表,举个例子也是最简单的报表,A表是学生表,B表是老师表,现在想查出所有学生及其语文老师是谁?这个例子很简单,但是里面却包含了此类报表的精髓, 第一步分清,要查询的对象是谁,和那张表才是主表(分析过程:要查的对象是学生,还有学生对应的语文老师,因此可以确定需要查询的对象,那到底那张表才是主表,那种表才是从表?这里这样思考是比较正确的,  想要获取老师的信息,一定要获取到学生的信息,因此学生的信息更为基础,所以学生表比较适合做主表,老师表适合做从表),这个例子很简单,主要是分析思考的过程,养成良好的思考习惯,对后面制作其他报表,或者做数据分析等工作,才能得心应手

        这里在举个例子,是我之前遇到过

        如果此时使用Oracle制作该表的写法可能是: 1.   select * from A  a,B  b where a.teacherid= b.id (+);

        但此时使用MySQL数据库制作该表的的写法就不一样了:2. select * from A a left join B b where a.teacherid = b.id;

这是由于MySQL数据采用的是标准的SQL语句,在Oracle写2这段SQL也是可以的,但是在MySQL中写 1 就会报错,原因就是

语法差异,1是Oracle做外链接缩写,2才是通用版

        不知不觉都已经12点了,我想从今日开始坚持写博客,每天游泳,养成良好的作息习惯,所以未完,明天继续把这篇文字补完

    

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值