开发案例_Oracle案例记录 _01

  案例描述:

      现有一组生产数据如下:主键由SCREEN_SIZE、SCREEN_RESOLUTION、PLANTARE、PRUD_TYPE四个字段组成联合主键。
          按如下要求统计该表:
                    1、SCREEN_SIZE   不做变化
                    2、SCREEN_RESOLUTION  --  2K与8K不变,非2K与8K的全部按照4K统计
                    3、PRUD_TYPE   --  LCM 不变,OPEN/CELL 不变,其他类型按照SL统计
                    4、每种PRUD_TYPE下分两种数量统计。分别 ONWAY_QTY  、 INPLANT_QTY。
                          其中INPLANT_QTY = STOCK_QTY + ROUTING_QTY
                          SHIP_QTY暂时不做统计
                    

  模拟数据:


SQL代码如下:

SELECT T.SCREEN_SIZE,
       CASE WHEN T.SCREEN_RESOLUTION NOT IN('8K','2K') THEN '4K'
            WHEN T.SCREEN_RESOLUTION = '8K' THEN '8K'
            WHEN T.SCREEN_RESOLUTION = '2K' THEN '2K' END AS SCREEN_TYPE,
       T.PLANTAREA,
       SUM(DECODE(T.PRUD_TYPE,'LCM',(T.ONWAY_QTY),0)) AS LCM_ONWAY,
       SUM(DECODE(T.PRUD_TYPE,'LCM',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS LCM_INPLANT,
       SUM(DECODE(T.PRUD_TYPE,'OPEN CELL',(T.ONWAY_QTY),0)) AS OC_INPLANT,
       SUM(DECODE(T.PRUD_TYPE,'OPEN CELL',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS OC_INPLANT,
       SUM(DECODE(T.PRUD_TYPE,'SL1',(T.ONWAY_QTY),0)) AS SL_INPLANT,
       SUM(DECODE(T.PRUD_TYPE,'SL1',(T.STOCK_QTY + T.ROUTING_QTY),0)) AS SL_INPLANT,
       SUM(T.ONWAY_QTY + T.STOCK_QTY + T.ROUTING_QTY) AS TOTAL_COUNT
   FROM DEMO_STOCK T 
   WHERE 1=1 -- 统计条件
   GROUP BY T.SCREEN_SIZE,
       CASE WHEN T.SCREEN_RESOLUTION NOT IN('8K','2K') THEN '4K'
            WHEN T.SCREEN_RESOLUTION = '8K' THEN '8K'
            WHEN T.SCREEN_RESOLUTION = '2K' THEN '2K' END,
       T.PLANTAREA
   ORDER BY T.SCREEN_SIZE

统计结果如下:


猜你喜欢

转载自blog.csdn.net/shaotaiban1097/article/details/80356557