Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/03/2014, 11:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Select oracle

Vamos por partes, como decía Jack, the Ripper.

Lo que tienes que determinar primero es cuál es la cardinalidad de la relación entre Tabla_1 y Tabla_2. De lo contrario no podrás resolver tu problema.
Si la relación es 1:1, debería devolver la cantidad de registros igual a la de la consulta que menos devuelve (los 2.000 que mencionas). Eso desde el vamos.
Si devuelve más, no existe un error en la consulta en si, sino que eso indica que hay una relación por lo menos de cardinalidad 1:N, caso en el que siempre te devolverá más registros que la consulta de menor resultado. Es forzoso que eso suceda y es correcto.
Tu error es que no estás restringiendo adecuadamente la query que te devuelve los 8.000 registros. Para que te funcione debes reducir ese resultado y eso únicamente puede hacerse si le agregas a esa tabla condiciones adicionales en el WHERE.
¿Se entiende?
(Repasar los JOIN en caso de no comprenderlo).

Vale decir, la condición
Código SQL:
Ver original
  1. WHERE PROCESADO='SI'
es insuficiente para restringir el resultado. Debes, obligatoriamente, agregar más condiciones para excluir aquellos registros que no corresponden al resultado que buscas.

No puedo decirte mucho más, porque la descripción genérica de tus "tablas" no ayuda a saber con qué modelo de datos estás trabajando.

En resumen: No es un problema de query. Es un problema de parametrizacion del WHERE.

¿Queda clara la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)