查询出的结果字段基本上全是根据条件进行数据统计后的数据。
比如:生产批号  生产总数 合格品 合格率 不良品 不良率 报废品 报废率 总数,合格品这些都是从几张表里查数据根据不同条件的统计数据。
我现在使用自定义函数分别生产总数、合格品、合格率这些全部算出来,然后几张表联合查询传参进去。
但现在的问题是表里数据一多,速度就明显慢很多很多。
请问像这种多统计的查询用什么方法查询方便且不影响查询速度,因为现在发现不用自定义函数统计出一个结果来查询的话,统计起来很麻烦。

解决方案 »

  1.   


    select  ...
    from
    (
       (子查询) as 生产总数
       xxx join
       (子查询) as 合格品
       xxx join
       .
       .
       .
    )
      

  2.   

    能不能给个示例:如表A:
    生产批号  良品数量   确认时间 表B:
    生产批号  不良品数量 不良类别  确认时间不良类别有报废品,处理品汇总同一确认时间同一批次以下数据:
    生产批号 生产总数 良品数量 良品率(良品/生产总数)  不良品(所有不良品)  不良率(所有不良品/生产总数   报废品(不良类别为报废品) 报废率(不良类别为报废品/生产总数)
    我现在的方法是select 生产批号,自定义函数(生产批号,确认时间)as 生产总数,自定义函数(生产批号,确认时间)as 良品数量 ....from 表A GROUP BY 生产批号,确认时间
    这样做数据一多就慢得要命。