Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

No puedo transformar a Inner join

Estas en el tema de No puedo transformar a Inner join en el foro de Mysql en Foros del Web. Estimados. Tengo esta consulta, donde no muestra los campos vacíos, y leyendo en su foro, me percaté que esto se debe en la igualación de ...
  #1 (permalink)  
Antiguo 26/03/2013, 10:26
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
No puedo transformar a Inner join

Estimados.

Tengo esta consulta, donde no muestra los campos vacíos, y leyendo en su foro, me percaté que esto se debe en la igualación de tablas y que para corregir este asunto se debe utilizar Inner Join y he tratado constantemente, pero algo esta fallando:

Código MySQL:
Ver original
  1. SELECT f.CodAux AS 'AUXILIAR'
  2. , d.RutAux AS 'RUT'
  3. , d.NomAux AS 'CLIENTE'
  4. , c.PCCODI AS 'COD_CUENTA'
  5. , a.MovTipDocRef AS 'TIPO_DOC'
  6. , f.MovNumDocRef AS 'NUM_DOC'
  7. , (a.MovDebe-a.Movhaber) AS 'SALDO'
  8. , a.MovFe AS 'FEC_EMISION'
  9. , a.MovFv AS 'FEC_VENCIMIENTO'
  10. , e.CpbNum AS 'COMP'
  11. , a.MovGlosa AS 'GLOSA'
  12. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwmovim a,
  13. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwpctas c,
  14. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtauxi d,
  15. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.CwCpbte e,
  16. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.CWDocSaldos f,
  17. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtciud g,
  18. `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtregion h
  19. d.CiuAux = g.CiuCod AND
  20. f.MovNumDocRef = a.MovNumDocRef AND
  21. f.MovTipDocRef = a.MovTipDocRef AND
  22. a.CpbAno = e.CpbAno AND
  23. e.CpbNum = a.CpbNum AND
  24. c.PCCODI = a.PctCod AND
  25. d.CodAux = a.CodAux AND d.CodAux = f.CodAux AND
  26. h.id_Region = g.id_Region AND
  27. ((e.CpbEst='V') AND (f.DEBE-f.HABER<>0) AND (e.CpbAno='2013'))
  28. ORDER BY d.rutaux , f.Movnumdocref


Lo de la clausula Where ¿Cómo lo transformo a Inner Join?

saludos.

Última edición por gnzsoloyo; 26/03/2013 a las 10:52 Razón: SQL no etiquetado. Usar Highlight "SQL" o "MySQL"
  #2 (permalink)  
Antiguo 26/03/2013, 12:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: No puedo transformar a Inner join

Hola hydeless:

En el FROM debes dejar tu tabla "principal" y por cada una de ellas agregas un INNER JOIN con su respectivo ON, debes tener cuidado de poner en orden las tablas, es decir, ponerlas de acuerdo a cómo se van relacionando unas con otras. En el WHERE colocas las condiciones que no forman parte de las uniones y como comentario, todos los paréntesis que pones son completamente inutiles, lo mismo que la palabra reservada AS.

Código MySQL:
Ver original
  1. SELECT f.CodAux  'AUXILIAR',
  2. d.RutAux 'RUT',
  3. d.NomAux 'CLIENTE',
  4. c.PCCODI 'COD_CUENTA',
  5. a.MovTipDocRef 'TIPO_DOC',
  6. f.MovNumDocRef 'NUM_DOC',
  7. (a.MovDebe-a.Movhaber) 'SALDO',
  8. a.MovFe 'FEC_EMISION',
  9. a.MovFv 'FEC_VENCIMIENTO',
  10. e.CpbNum 'COMP',
  11. a.MovGlosa 'GLOSA'
  12.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwmovim a
  13.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwpctas c
  14. ON c.PCCODI = a.PctCod AND
  15.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtauxi d
  16. ON d.CodAux = a.CodAux
  17.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.CwCpbte e
  18. ON a.CpbAno = e.CpbAno AND e.CpbNum = a.CpbNum
  19.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.CWDocSaldos f
  20. ON f.MovNumDocRef = a.MovNumDocRef AND
  21.     f.MovTipDocRef = a.MovTipDocRef AND
  22.     d.CodAux = f.CodAux
  23.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtciud g
  24. ON d.CiuAux = g.CiuCod AND
  25.     `W:\SOFTLAND\DATOS\PIBAMOUR2\SODATOS`.cwtregion h
  26. ON h.id_Region = g.id_Region
  27.     e.CpbEst='V' AND f.DEBE-f.HABER<>0 AND e.CpbAno='2013'
  28. ORDER BY d.rutaux , f.Movnumdocref

Haz la prueba y nos comentas

Saludos
Leo.

Última edición por gnzsoloyo; 26/03/2013 a las 12:23 Razón: Faltaba un espacio en un INNER JOIN
  #3 (permalink)  
Antiguo 26/03/2013, 12:23
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: No puedo transformar a Inner join

No te olvides que los INNER JOIN representan relaciones obligatorias, y si una de tlas tablas no devuelve datos, o un registro de ella no se relaciona con el resto, la linea compelta no será devuelta como resultado.
En el caso de las relaciones opcionales, estas deben ser hechas por LEFT JOIN o RIGHT JOIN, según sea el caso. Pero estas dos cláusulas pueden producir resultados erróneos si la relación no está correctamente planteada en la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: transformacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.