Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/06/2013, 15:15
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Algunos registros repetidos en consulta

Hola max_mouse699:

Algunas observaciones.

Primero, ¿ES ABSOLUTAMENTE NECESARIO QUE UTILICES SÓLO LEFT JOIN's?

es decir, ¿puede haber artículos sin unidad_medida, marca, modelo o estado?

Utilizar LEFT JOIN's como lo haces, puede traer problemas... si una relación es mandatoria, es decir que debe existir por fuerza, entonces debes utilizar INNER JOIN's, tal como tienes tu modelo, me da a entender que en realidad el problema está justamente desde el modelado de los datos.

Ahora bien, es algo complicado tratar de entender todo el modelo sobre todo al no tener datos, pero partamos de lo último que dices que funciona... hasta donde alcancé a leer la penúltima consulta funciona y te arroja resultados y lo que pretendes es filtrar, a partir de esos resultados sólo aquellos que cumplan con cierta condición correcto???

Una posible error está en cómo funcionan la UNION entre tablas, podrías comenzar a probar poniendo paréntesis, es decir:

Código:
( SELECT ......
  WHERE
      INSTR(bodeti.descripcion, 'carroceria') > 0
)
UNION
( SELECT ......
  WHERE
      INSTR(bodeti.descripcion, 'carroceria') > 0
)
ya que si no colocas paréntesis, el segundo WHERE lo realiza sobre el resultado de la UNION...

Otra solución sería filtrar hasta el final, también utilizando paréntesis o subconsultas, es decir, algo como esto:

Código:
SELECT * FROM 
(
   Aquí colocas la consulta con el UNION sin filtrar los registros
) T
WHERE 
    INSTR(T.campo, 'carroceria') > 0
Obviamente tendrías que incluir el campo que te interesa filtrar en el SELECT...

Has la prueba y nos comentas.

Saludos
Leo.