MySQL - Como hacer una division y una suma con dos consultas mysql?

 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Como hacer una division y una suma con dos consultas mysql?

Publicado por Dago (11 intervenciones) el 15/03/2019 15:06:42
Hola estoy haciendo una formula en base a los datos de dos consultas y no he logrado tener exito la formula es esta

DPM = MTBF/ (MTBF+ MTTR)

Esta es la primer consulta

1
2
3
4
5
select monthname(Fproceso) as mes,
sum( Hreales) /
sum(case when Paro_mante = 0 then 1 else Paro_mante end) as mtbf
FROM proceso
group by year(Fproceso), month(Fproceso)

y esta es la otra

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT  MONTHNAME(b.Fecha_ini)  AS Mes,
        SUM(case when b.Hora_parada = 0 then 1 else b.Hora_parada)  AS Horas,
        IFNULL(p.Paro,0)        AS Paro,
        SUM(case when b.Hora_parada = 0 then 1 else b.Hora_parada) / CASE when p.Paro = 0 THEN 1 ELSE p.Paro END AS MTTR
    FROM orden_trabajo as b
    INNER JOIn solicitud_mante a
        ON a.Id_soli = b.Id_soli
    -- Subconsulta de "Paros"
    LEFT JOIN (SELECT YEAR(Fproceso) AS anio,
                      MONTH(Fproceso)  AS mes,
                      SUM(case when Paro_mante = 0 then 1 else Paro_mante end) AS Paro
                      FROM proceso
                      GROUP BY YEAR(Fproceso), MONTH(Fproceso)
        ) p
        ON MONTH(b.Fecha_ini) = p.mes
        AND YEAR(b.Fecha_ini) = p.anio
    WHERE a.Tipo_mante = 'Correctivo Inmediato'
    GROUP by
        YEAR(b.Fecha_ini),
        MONTH(b.Fecha_ini),
        IFNULL(p.Paro,0)

y por los momentos tengo esto pero tengo un error espero me puedan ayudar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Select a.MTBF/(a.MTBF + b.MTTR)
from
   (sum( Hreales) /
   sum(case when Paro_mante = 0 then 1 else Paro_mante end) as mtbf
   FROM proceso
   group by year(Fproceso), month(Fproceso)) a,
   (SELECT  SUM(case when b.Hora_parada = 0 then 1 else b.Hora_parada) / CASE when p.Paro = 0 THEN 1 ELSE p.Paro END AS MTTR
       FROM orden_trabajo as b
       INNER JOIn solicitud_mante a
        ON a.Id_soli = b.Id_soli
    -- Subconsulta de "Paros"
    LEFT JOIN (SELECT YEAR(Fproceso) AS anio,
                      MONTH(Fproceso)  AS mes,
                      SUM(case when Paro_mante = 0 then 1 else Paro_mante end) AS Paro
                      FROM proceso
                      GROUP BY YEAR(Fproceso), MONTH(Fproceso)
        ) p
        ON MONTH(b.Fecha_ini) = p.mes
        AND YEAR(b.Fecha_ini) = p.anio
    WHERE a.Tipo_mante = 'Correctivo Inmediato'
    GROUP by
        YEAR(b.Fecha_ini),
        MONTH(b.Fecha_ini),
        IFNULL(p.Paro,0) ) b

el error que me sale dice que en antes del (sum Hreales) / no se que pueda estarme faltando en esa parte del FROMM
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder