Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/04/2008, 00:47
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: algo esta mal con este query

Cita:
Iniciado por clavijo83 Ver Mensaje
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.