Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/12/2009, 09:55
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: 17 años, 3 meses
Puntos: 2658
Respuesta: Consulta dejo de funcionar de un momento a otro.

Primero unos consejos para que podamos leer mejor las cosas:
Por un lado, trata de usar los tags que te proporciona el boton que ven con el "#" verde, poniendole SQL, si no puedes, usa la cita. De esa forma en el post el bloque de código se verá separado del resto.
Luego, trata de estructurar la forma en que escribes la sentencia en el post, para facilitar la lectura. Tal y como la pones, hay que andar buscando el código con mucho cuidado, poerque no se alcanza a entender bien.
En cuanto al código, ten en cuenta que el orden de lectura de las tablas es importante en los JOIN (más aún si usas LEFT o RIGHT), de modo que no pongas una tabla accesoria como primera tabla. Pon la tabla que contiene los datos primarios, en este caso tbcabingresos .
Además, el objetivo de usar alias es cambiar el nombre de la tabla por otro, para facilitar la escritura de código y controlar que no haya problemas de nombres de campos o tablas. No tiene sentido que como alias de tbcabingresos pongas tbcabingresos ... ¿ o sí?

Yendo al problema, si esta sentiencai:
Código sql:
Ver original
  1. SELECT
  2.   TBI.CODINGRESO,
  3.   TBI.CODPROVE E,
  4.   TA1.ADESANE,
  5.   TBI.CODTDOCUM,
  6.   TBI.NUMDOCUM
  7. FROM tbcabingresos TBI INNER JOIN tbanexo TA1 ON TA1.ACODANE = TBI.CODPROVEE
  8. WHERE
  9.   (TBI.CODINGRESO ='13/12005')  AND (TBI.FECHAINGRESO ='2009-12-01')
  10. GROUP BY TBI.CODINGRESO;
te devuelve un registro, pero no te lo devuelve si cruzas
así:
Código sql:
Ver original
  1. INNER JOIN tbanexo TA1 ON TA1.ACODANE =TCI.CODPROVEE
  2.   INNER JOIN tbanexo TA2 ON TA2.ACODANE = TCI.CODTRANSPOR
eso puede implicar que no hay un registro que pueda cumplir con eso y al mismo tiempo con esto:
Código sql:
Ver original
  1. (TCI.CODINGRESO ='13/12005') AND
  2.   (TCI.FECHAINGRESO ='2009-12-01')
, caso en el cual hay que revisa ese registro que te devuelve para ver si se da que pueda cumplirlo.
Por las dudas, yo probaría esto:
Código sql:
Ver original
  1. SELECT
  2.   TCI.CODINGRESO,
  3.   TCI.CODCOMPRA,
  4.   TCI.CODSUBDIARIO,
  5.   TCI.FECHCOMPRO ,
  6.   TCI.TIPODEPAGO,
  7.   TCI.CODTIPCAMBIO,
  8.   TCI.MONTOCAMBIO,
  9.   TCI.CODPROVEE,
  10.   IFNULL(TA1.ADESANE,'') ADESANE,
  11.   TCI.CODTDOCUM,
  12.   TCI.NUMDOCUM,
  13.   TCI.FECHEMISION,
  14.   TCI.FECHAVENCIM,
  15.   TCI.SUBTOTAL,
  16.   TCI.TASAIGV,
  17.   TCI.TOTALPROVEE,
  18.   TCI.CODTRANSPOR,
  19.   IFNULL(TA2.ADESANE, '') ADET,
  20.   TCI.NUMEROGUIA,
  21.   TCI.NUMEROFACTURA,
  22.   TCI.BULTOS,
  23.   TCI.CODORIG EN,
  24.   TCI.CODTIPTRANS,
  25.   TCI.CODTIPPESO,
  26.   TCI.PESOTOTAL,
  27.   TCI.TOTALTRANS,
  28.   TCI.FECHAINGRESO,
  29.   TCI.IDUSUARIO,
  30.   TCI.ESTADO
  31. FROM tbcabingresos TCI
  32.   LEFT JOIN tbanexo TA1 ON TA1.ACODANE =TCI.CODPROVEE
  33.   LEFT  JOIN tbanexo TA2 ON TA2.ACODANE = TCI.CODTRANSPOR
  34. WHERE
  35.   (TCI.CODINGRESO ='13/12005') AND
  36.   (TCI.FECHAINGRESO ='2009-12-01')
  37. GROUP BY TCI.CODINGRESO;
para ver si el problema es que no hay coincidencias en algúno de los códigos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)