Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/11/2012, 06:31
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: me repite los registros

Por lo pronto, el OR que pusiste opera como una disyunción y hace que con sólo que sea TRUE esa condición y la siguiente, devuelva un resultado inesperado.
Tomate el trabajo de escribir estructuradamente la consulta para que puedas ver correctamente los bloques que se aevalúan. Cuando la pones de corrido es muy fácil meter la pata y no ver los errores de lógica.
También repasa algo de lógica proposicional y los operadores lógicos AND y OR para tener claro cómo se evalúan y construyen.

Pruebalo así (mira cómo la escribí para que trates de hacer algo como eso, te ayudará):
Código MySQL:
Ver original
  1.     T10.cantidad,
  2.     T10.idnodo,
  3.     l1.idproducto,
  4.     l1.precio,
  5.     l1.posicion,
  6.     l1.manual,
  7.     l1.idpliego
  8. from licita l1
  9.     INNER JOIN tablabase10 t10 ON l1.idproducto = T10.idproducto
  10.     l1.idpliego = 94
  11.     and (T10.idpliego = 94 and T10.idnodo = 61)
  12.     AND l1.posicion = 1
  13.     AND
  14.         (NOT exists
  15.             (select l2.idproducto
  16.             from licita l2
  17.             where
  18.                 l2.idproducto = l1.idproducto
  19.                 and l2.manual = 1
  20.                 and l2.idpliego = l1.idpliego )
  21.         OR l1.posicion > 1)
  22.         AND l1.manual = 1
  23. ORDER BY l1.idproducto, l1.posicion
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)