Ver Mensaje Individual
  #12  
Antiguo 24-05-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Reputación: 19
olbeup Va camino a la fama
Hola Petolansa,

El problema que te esta pasando no es más ni menos que los paréntesis, MSACCESS es raro ya por naturaleza y a la hora de trabajar con más de un INNER JOIN, necesita paréntesis, ¿el porque?, no lo se, pero así es como trabaja este motor de base de datos.

Cuando pones más de un INNER JOIN tienes que utilizar tantos paréntesis cómo INNER JOIN pongas, el primer paréntesis se coloca después del FROM y cerrando cómo INNER JOIN tengas excepto el último, es aquí tu caso.

Código SQL [-]
SELECT
    P.PNROLEGAJO
    ,P.PAPELLIDO
    ,P.PNOMBRE
    ,P.PFINGRESO
    ,P.PTELFIJO
    ,P.PTELCELULAR
    ,P.PGUARDIA
    ,P.PESTADO
    ,P.PFECHANAC
    ,P.POBSERVA
    ,H.TURNO
    ,H.DESCTURNO
    ,L.LNOMBRELUGAR
    ,L.DESCLUGAR
    ,A.TIPOACTIVIDAD
    ,A.ADESCACTIVIDAD
  FROM ((PERSONAL AS P
    INNER JOIN HORARIO AS H
      ON P.PCODHORARIO = H.HCODHORARIO)
    INNER JOIN LUGAR AS L
      ON P.PCODLUGAR = L.PCODLUGAR)
    INNER JOIN ACTIVIDAD AS A
      ON P.PCODACTIVIDAD = A.ACODACTIVIDAD
  WHERE P.PDNI=:NRODNI
¿Cuantos paréntesis hay?, pues 2, ¿Cuantos INNER JOIN hay?, pues 3.
Los paréntesis se colocan cuando hay más de un INNER JOIN y cerrando los paréntesis en cada INNER JOIN excepto el último.

Espero que se me haya entendido para los futuros INNER JOIN

Cómo dice Casimiro Notevi, es mucho mejor utilizar ALIAS en tus base de datos para evitar errores que te puedan llevar a muchos dolores de cabeza.

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 24-05-2012 a las 09:03:44.
Responder Con Cita