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

模块管理常规功能自定义系统的设计与实现(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 ,用来设置该字段,可以生成哪些个聚合的字段。



确定后执行后,我们来看看查询结果:



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