Como hacer una division y una suma con dos consultas mysql?
Publicado por Dago (12 intervenciones) el 15/03/2019 02:59:37
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
y esta es la otra
y por los mometos tengo esto pero tengo un error espero me puedan ayudar
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 mometos 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
Valora esta pregunta
0