Tema: Error
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/12/2010, 09:41
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: Error

A veces es mejor usar algún software con parseo de sintaxis y escribir la sentencia en forma estructurada. De ese modo los errores se vuelven visibles. To te recomiendo usar MySQL Workbench, que puedes descargar de la página oficial.
En tu caso tenías un ON mal puesto en el INNER JOIN, y además mal cerrados los últimos paréntesis (muchos de los cuales eran innecesarios).
Quedaría mas o menos así:
Código MySQL:
Ver original
  1.     ot.ordtracodigo,
  2.     ot.ordtrafecgen,
  3.     ot.plantacodigo,
  4.     ot.sistemcodigo,
  5.     ot.equipocodigo,
  6.     ot.componcodigo,
  7.     ot.tipmancodigo,
  8.     ot.ordtradescri,
  9.     ot.ordtrafecini,
  10.     ot.ordtrahorini,
  11.     ot.ordtrafecfin,
  12.     ot.ordtrahorfin,
  13.     ta.usuacodi,
  14.     ta.tiptracodigo,
  15.     ta.tareacodigo,
  16.     ta.usutarcodigo,
  17.     ta.prioricodigo,
  18.     tb.otestacodigo,
  19.     ot.tipfalcodigo,
  20.     subzona.subzoncodigo,
  21.     zona.zonacodigo,
  22.     ot.solsercodigo
  23.   sistema INNER JOIN
  24.     (SELECT
  25.         tareot.ordtracodigo,
  26.         tareot.otestacodigo
  27.     FROM
  28.         tareot INNER JOIN
  29.           (SELECT
  30.               ordtracodigo,
  31.               MAX(tareotsecuen) AS tareotsecuen
  32.           FROM tareot
  33.           WHERE
  34.               (ordtracodigo IS NOT NULL)
  35.           GROUP BY ordtracodigo) AS ta1
  36.           ON tareot.ordtracodigo = ta1.ordtracodigo AND tareot.tareotsecuen = ta1.tareotsecuen
  37.     ) AS tb INNER JOIN
  38.     (SELECT
  39.         tareot.ordtracodigo,
  40.         usuariotareot.usuacodi,
  41.         tareot.tareacodigo,
  42.         usuariotareot.usutarcodigo,
  43.         tareot.tiptracodigo,
  44.         tareot.prioricodigo
  45.     FROM
  46.         tareot
  47.         INNER JOIN ot ON tareot.ordtracodigo = ot.ordtracodigo
  48.         INNER JOIN usuariotareot ON tareot.tareotcodigo = usuariotareot.tareotcodigo
  49.      WHERE
  50.          (tareot.tareotsecuen = '0' AND usuariotareot.usutarlider = '1')
  51.      ) AS ta ON tb.ordtracodigo = ta.ordtracodigo
  52.      INNER JOIN ot ON ta.ordtracodigo = ot.ordtracodigo AND sistema.sistemcodigo = ot.sistemcodigo
  53.      INNER JOIN subzona ON sistema.subzoncodigo = subzona.subzoncodigo
  54.      INNER JOIN zona ON subzona.zonacodigo = zona.zonacodigo
  55. WHERE NOT tb.ordtracodigo IN
  56.     (SELECT ordtracodigo
  57.     FROM reportot
  58.     WHERE reportcodigo IN
  59.         (SELECT reportcodigo FROM cierreot WHERE ordtracodigo = tb.ordtracodigo
  60.         )
  61.     );
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)