Cita:
Iniciado por clavijo83
tengo un problema que no he podido resolver con este query, resulta que con el valor que tiene "920" no me realiza la sumatoria sino que da el valor de una sola columna, pero con otro valor por ejemplo "950B#1" si hace la suma bien. hago una modificacion y quito del query la parte "and r.codigo_reporte=dtc.codigo_reporte " y pasa lo contrario, osea que hace la sumatoria bien para "920" , pero para "950B#1" el valor es el doble del que deberia ser
sum(gasolina) as g, sum(aceite_motor)as am, sum(aceite_transmision) as atr,
sum(aceite_hdco) as ah, sum(grasa) as gr from reporte as r, detalle_equipos_consumo as dtc, equipos as e
where dtc.codigo_equipo='920' and r.codigo_reporte=dtc.codigo_reporte and e.codigo_equipo=r.codigo_equipo and
dtc.codigo_equipo=r.codigo_equipo group by dtc.codigo_equipo asc;
no se como hacer para que me haga la suma exacta de las columnas, todos los valores son de tipo double. gracias por la ayuda
Se me ocurre preguntarte cómo pueden tener la misma naturaleza 920 y 950B#1; ¿son datos del mismo tipo da campo? ¿se trata de un campo numérico o varchar? porque si es numérico es lógico que el segundo dato te dé problemas y si es texto las consultas con = harán encuentre uno y no otro, por no hablar de los problemas a la hora de establecer las relaciones. Dejo al margen el tema de las relaciones con INNER JOIN o WHERE = con índices PK FK. Pon la estructura de tu base, las relaciones entre las tablas y precisa algo la naturaleza de los campos. Creo que podremos ayudarte mejor.