设计与实现模块管理系统的基本功能定义自己的(38--终极阶段 综合查询[5])

综合查询(5)--选择参考模块

什么是基准模块。就是你的综合查询要以哪个模块作为查询的主模块,我没想到其它的词,就用这个来表示一下。详细的来说。就是你选择了若干个模块的字段组成了一个查询,你究竞是想展示哪个模块的内容。

比方我们前几节的样例中,选择的模块有“订单”和“订单明细”,里面有分别以“订单”和“订单明细”作为基准模块的截图。如今来详细讲讲二个父子模块作为基准模块时的不同之处。

1、子模块作为基准模块:这时全部的父模块的字段都会增加。

查询的sql 语句为:

    select
    		// 订单明细的字段
        _t6050.tf_ordersDetailId as tf_ordersDetailId ,
        _t6050.tf_name as tf_name ,
        _t6050.tf_number as tf_number ,
        _t6050.tf_unitPrice as tf_unitPrice ,
        _t6050.tf_subtotalPrice as tf_subtotalPrice ,
        _t6050.tf_remark as tf_remark ,

        //订单的字段
        _t6040.tf_date as _t6040___tf_date ,
        _t6040.tf_finished as _t6040___tf_finished ,
        _t6040.tf_ordersId as _t6040___tf_ordersId ,
        _t6040.tf_ordersNumber as _t6040___tf_ordersNumber ,
    from
        OrdersDetail _t6050 //订单明细
    left outer join
        Orders _t6040 //订单
            on _t6040.tf_ordersId = _t6050.tf_ordersId  

2、当以父模块作为基准模块时。子模块的记录就仅仅能以聚合字段的形式出现了。没有聚合操作的字段将会被舍去。

生成的sql 语句为:

    select
    		//订单信息
        _t6040.tf_ordersId as tf_ordersId ,
        _t6040.tf_ordersNumber as tf_ordersNumber ,
        _t6040.tf_date as tf_date ,
        _t6040.tf_finished as tf_finished ,
        _t6040.tf_remark as tf_remark ,

        //订单明细的数量汇总
        ( select
            sum(_t6050.tf_number)
        from
            OrdersDetail _t6050
        left outer join
            Orders _child_t6040
                on _child_t6040.tf_ordersId = _t6050.tf_ordersId
        where
            _child_t6040.tf_ordersId = _t6040.tf_ordersId ) as S__t6050___tf_number ,

        //订单明细的金额汇总
        ( select
            sum(_t6050.tf_subtotalPrice)
        from
            OrdersDetail _t6050
        left outer join
            Orders _child_t6040
                on _child_t6040.tf_ordersId = _t6050.tf_ordersId
        where
            _child_t6040.tf_ordersId = _t6040.tf_ordersId ) as S__t6050___tf_subtotalPrice 

    from
        Orders _t6040 

上面的样例里仅仅出现了求和的聚合操作。那么假设要增加计数,最大值,最小值,平均值要怎样操作呢。

前面几节在介绍选择字段。输入字段的条件时,在条件值的以下有5个checkbox ,用来设置该字段。能够生成哪些个聚合的字段。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

确定后运行后。我们来看看查询结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

sql语句和上面的类似就是增加了count ,max ,min,avg 等。这个界面上以后还能增加扩展功能。比方说在“数量个数”的值上加个链接,一点就能看到明细;在“数量最大值”的值上加个链接,一点就能查看最大值的那个“订单明细”等等。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-11-22 22:23:37

设计与实现模块管理系统的基本功能定义自己的(38--终极阶段 综合查询[5])的相关文章

设计与实现模块管理系统基本功能定义自己(18--设计模块附件[1])

设计模块附件(1) 视频解说在线观看:视频解说链接 http://i.youku.com/jfok1972 "附件"作为模块记录数据的补充也是非常重要的一部分,比方对于"省份"模块,我们能够放置一些地图.对于"销售合同"模块,能够上传合同正文的电子文件,以及扫描件. 对于"客户"上传其营业执照.资质类型的图片等等. 附件整个管理流程已经完毕,如今仅仅要做的二步就是给模块加上"有附件"这个标记.然后再设置一下

模块管理常规功能自定义系统的设计与实现(35--终级阶段 综合查询[2])

综合查询(2)--查询条件的设置1 上一节介绍了如何选择查询字段,这一节来看看如何设置查询条件.对于这个销售管理系统中的"订单"模块而言,可以设置的查询条件可以想到的有:需要按业务员查询.按产品查询.按产品分类查询,按年度.月度等的日期查询,再而可以按市.按省.按省的所属区域.按客户的所属行业和等级来查询.对于以上按照模块父模块相关信息来设置条件的方法,设计得也是非常简单.在上一节介绍中,在toolbar中有一个"部门",是用来设置部门条件的.现在我们来看看如何加入

模块管理常规功能自定义系统的设计与实现(34--终级阶段 综合查询[1])

综合查询(1) 前面已经架构好了一个销售管理系统,看看功能也挺多,也基本够用了.但是仔细分析一下就会发现,前面的设计都是属于数据操纵方面的,虽然有导航.筛选功能,但是对于统计分析来说还是远远不够用的.为了能够进行灵活的统计分析和查询,经过多次的改进,生成了我现在的综合查询体系. 整个综合查询体系包括以下几个方面的内容: 1.字段的选择: 2.查询条件的设置: 3.基准模块的选择: 4.聚合字段类型的设置: 5.多级分组的设置: 6.综合查询方案的管理: 7.图表分析: 8.数据导出: 整个综合查

模块管理常规功能自定义系统的设计与实现(36--终级阶段 综合查询[3])

综合查询(3)--查询条件的设置2 不仅仅对于模块才有这样方便的条件选择方式,对模块的字段也可以设置.例如对于"省份"中有个字段是"所属区域",这个字段不是一个manyToOne字段,而是一个字符串字段,里面就是存着"东北地区"."华北地区"等等这样的具体的字符串值.对于这样的字段也很容易将其放在toolbar上供选择.在模块字段中找到"所属区域"这个字段,修改字段的属性,让这个字段可以加到综合查询的too

模块管理常规功能自定义系统的设计与实现(37--终级阶段 综合查询[4])

综合查询(4)--查询条件的设置3 这节来看看日期字段如何设置查询条件.我对日期字段做了一个分类,使其可以按年,年季,年月,年月日的几种方式来设置条件.另外每一个模块可以设置一个日期字段,当该模块作为查询的基准模块时,在条件设置toolbar 上第一个菜单即是日期选择菜单,选择的值将会作为该日期字段的条件.例如对于"订单"模块,为其设置了日期字段为"tf_date". 在综合查询的模块中显示为以下: 上图是选中了基准模块为"订单"时,查询期间选择

模块管理常规功能自定义系统的设计与实现(40--终级阶段 综合查询[7])

综合查询(7)--多个模块的查询 前几节讲的查询都是二个模块之间的,现在看看多模块的查询.其实原理是一样的,先选择字段,设计一个查询方案,把和订单相关的所有模块都选进去. 我又设置了二个条件,设置好后的查询主界面如下: 现在选择基准模块的菜单下有七个模块可供选择.也就是说上面的查询一共选择了七个表的数据. 现在一个个看看结果吧.先选择"订单"作为基准模块. 以客户单位作为基准模块: 再选择客户等级作为基准模块: 这个查询贴一下自动生成的sql 语句: select top 5 '' a

模块管理常规功能自定义系统的设计与实现(38--终级阶段 综合查询[5])

综合查询(5)--基准模块的选择 什么是基准模块,就是你的综合查询要以哪个模块作为查询的主模块,我没想到其他的词,就用这个来表示一下.具体的来说,就是你选择了若干个模块的字段组成了一个查询,你究竞是想展示哪个模块的内容.比如我们前几节的例子中,选择的模块有"订单"和"订单明细",里面有分别以"订单"和"订单明细"作为基准模块的截图.现在来具体讲讲二个父子模块作为基准模块时的不同之处. 1.子模块作为基准模块:这时所有的父模块的

模块管理常规功能自定义系统的设计与实现(39--终级阶段 综合查询[6])

综合查询(6)--不同基准模块下的条件 有了基准模块,又产生了一个问题,你设置查询条件的作用对象可能会随着基准模块的不同而改变.举个例子,当你查询"订单明细"的时候,选择了若干个商品作为查询条件,当基准模块是"订单明细"的时候,一切都没问题,满足你选择的商品的条件才会加到结果集中.但是这时候,你把基准模块改成了"订单",那么这些商品的查询条件就要应用到聚合字段之中. 来看一下演示:先选择二个模块的条件,客户名称和商品,用来限制查询的范围在此二个条

模块管理常规功能自定义系统的设计与实现(41--终级阶段 综合查询[8]分类汇总)

综合查询(8)--分类汇总 这一节来看看分类汇总,在一个查询方案建立好了以后,可以对其进行汇总和分类汇总.分类汇总的级数可以任意级,为了方便操作,暂定为最多三级. 先来看看总计. 在上图显示总计前面就是一个分组设置,当前状态是未选择,我先选择一个按年度分组. 下面显示明细,看看结果. 这是一级分类汇总的,下面看看二级的. 再看看显示明细数据的 下面设置第三级: 三级显示明细 导出的excel表 理论上可以无限级次的分组,我暂定最多设置了三级. 博客是不是写得很失败啊,评论的人都没有一个.这一节也