Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.50 KB | None | 0 0
  1. SELECT "production_workshift"."wiring_id",
  2.        "wirings_wiring"."supplier",
  3.        "wirings_wiring"."customer",
  4.        "wirings_wiring"."standard_seconds",
  5.        "wirings_wiring"."standard_production",
  6.        "production_workshift"."date",
  7.        COALESCE(SUM("scrap_report"."scrap_counter"), 0)     AS "scrap_count",
  8.        COALESCE(SUM("test_report"."tot_assembled"), 0)      AS "tot_assembled",
  9.        SUM("test_report"."pause_time")                      AS "pause_time",
  10.        ( 1 / Avg(( 1 / "test_report"."efficiency" )) )      AS "efficiency",
  11.        Avg("test_report"."productivity")                    AS "productivity",
  12.        Avg("test_report"."std_dev")                         AS "std_dev",
  13.        MIN("test_report"."first_test")                      AS "first_test",
  14.        MAX("test_report"."last_test")                       AS "last_test",
  15.        Avg("test_report"."avg_tot")                         AS "avg_tot",
  16.        Avg("test_report"."avg_setup")                       AS "avg_setup",
  17.        Avg("test_report"."avg_positioning")                 AS "avg_positioning"
  18.        ,
  19.        Avg("test_report"."avg_assembly")                    AS
  20.        "avg_assembly",
  21.        Avg("test_report"."avg_taping")                      AS "avg_taping",
  22.        MIN("test_report"."min_time")                        AS "min_time",
  23.        COUNT(DISTINCT "production_workshift"."operator_id") AS
  24.        "online_operators"
  25. FROM   "production_workshift"
  26.        INNER JOIN "wirings_wiring"
  27.                ON ( "production_workshift"."wiring_id" =
  28.                   "wirings_wiring"."code" )
  29.        LEFT OUTER JOIN "scrap_report"
  30.                     ON ( "production_workshift"."id" =
  31.                          "scrap_report"."workshift_id" )
  32.        LEFT OUTER JOIN "test_report"
  33.                     ON ( "production_workshift"."id" =
  34.                          "test_report"."workshift_id" )
  35. WHERE  ( "production_workshift"."date" >= '2019-01-24' :: DATE
  36.          AND "production_workshift"."date" <= '2019-01-24' :: DATE
  37.          AND NOT ( "wirings_wiring"."plant_id" = 'UTILS'
  38.                    AND "wirings_wiring"."plant_id" IS NOT NULL )
  39.          AND "wirings_wiring"."plant_id" = 'EL_SIE'
  40.          AND "production_workshift"."date" >= '2019-01-24' :: DATE
  41.          AND "production_workshift"."date" <= '2019-01-24' :: DATE
  42.          AND "wirings_wiring"."plant_id" = 'EL_SIE' )
  43. GROUP  BY "production_workshift"."wiring_id",
  44.           "wirings_wiring"."supplier",
  45.           "wirings_wiring"."customer",
  46.           "wirings_wiring"."standard_seconds",
  47.           "wirings_wiring"."standard_production",
  48.           "production_workshift"."date"
  49. HAVING ( COALESCE(SUM("test_report"."tot_assembled"), 0) >= 1
  50.           OR COALESCE(SUM("scrap_report"."scrap_counter"), 0) >= 1 )  
  51.          
  52.          
  53.          
  54.          
  55.          
  56.          
  57.          
  58.          
  59. DOVE SCRAP_REPORT è
  60.  SELECT ps.workshift_id,
  61.     ps.DATE,
  62.     SUM(ps.qty) AS scrap_counter
  63.    FROM production_scrap ps
  64.   GROUP BY ps.workshift_id, ps.DATE;
  65.  
  66.  
  67. E TEST_REPORT è
  68.  SELECT   pt.workshift_id,
  69.          pt.DATE,
  70.          COUNT(pt.id)                                                                                                                                                                                             AS tot_assembled,
  71.          SUM(COALESCE(tpt.pause_time / 1000.0, 0.0))                                                                                                                                                              AS pause_time,
  72.          Avg((pt."end"               - pt.START)::           NUMERIC / 1000.0) FILTER (WHERE pt.reliable = TRUE)                                                                                                  AS avg_tot_raw,
  73.          avg((pt."end"               - pt.START)::           NUMERIC / 1000.0 - COALESCE(tpt.pause_time / 1000.0, 0.0)) FILTER (WHERE pt.reliable = TRUE)                                                         AS avg_tot,
  74.          avg((pt.first_connection    - pt.START)::           NUMERIC / 1000.0) FILTER (WHERE pt.reliable = TRUE)                                                                                                  AS avg_setup,
  75.          avg((pt.last_connection     - pt.START)::           NUMERIC / 1000.0) FILTER (WHERE pt.reliable = TRUE)                                                                                                  AS avg_assembly,
  76.          avg((pt.last_connection     - pt.first_connection)::NUMERIC / 1000.0) FILTER (WHERE pt.reliable = TRUE)                                                                                                  AS avg_positioning,
  77.          avg((pt."end"               - pt.last_connection):: NUMERIC / 1000.0) FILTER (WHERE pt.reliable = TRUE)                                                                                                  AS avg_taping,
  78.          1::NUMERIC / avg(1::NUMERIC / (100::NUMERIC / (((pt."end" - pt.START)::NUMERIC - COALESCE(tpt.pause_time, 0.0)) / 1000.0) * ww.standard_seconds::NUMERIC)) FILTER (WHERE pt.reliable = TRUE)             AS efficiency,
  79.          avg((ww.standard_seconds::NUMERIC - ((pt."end" - pt.START)::NUMERIC - COALESCE(tpt.pause_time, 0::NUMERIC) / 1000.0) / 1000.0) / ww.standard_seconds::NUMERIC * 100.0) FILTER (WHERE pt.reliable = TRUE) AS productivity,
  80.          stddev_pop((pt."end"              - pt.START)::NUMERIC / 1000.0 - COALESCE(tpt.pause_time / 1000.0, 0.0)) FILTER (WHERE pt.reliable = TRUE)                                                              AS std_dev,
  81.          MIN(pt.last_connection)                                                                                                                                                                                  AS first_test,
  82.          MAX(pt.last_connection)                                                                                                                                                                                  AS last_test,
  83.          MIN((pt."end" - pt.START)::NUMERIC / 1000.0 - COALESCE(tpt.pause_time / 1000.0, 0.0)) FILTER (WHERE pt.reliable = TRUE)                                                                                  AS min_time
  84. FROM     production_test pt
  85. JOIN     test_pause_time tpt
  86. ON       1 = 1
  87. AND      tpt.test_id = pt.id
  88. JOIN     production_workshift pw
  89. ON       1 = 1
  90. AND      pt.workshift_id = pw.id
  91. JOIN     wirings_wiring ww
  92. ON       1 = 1
  93. AND      pw.wiring_id::text = ww.code::text
  94. GROUP BY pt.workshift_id,
  95.          pt.DATE
  96. HAVING   COUNT(pt.id) > 0
  97. ORDER BY pt.workshift_id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement