Buscar registros con dos campos coincidentes en la misma tabla (SQL)
Publicado por Javier (3 intervenciones) el 16/05/2018 13:01:43
Buenos días, después de revisar el foro no he encontrado solución a un problema que me parecía sencillo. Seguro que alguien puede hacerme ver la luz...
Necesito seleccionar los registros de una única tabla 'Trabajos' que hayan realizado un tipo de trabajo concreto en dos periodos de tiempo diferentes: Por ejemplo ¿Qué clientes han vacunado a su mascota el año 2016 y también el año 2017? Necesito obtener los clientes que han vacunado los dos años.
La tabla Trabajos utiliza para este fin los campos IdCliente, IdTipoTrabajo y FechaTrabajo
El tipo de trabajo se debe obtener de una segunda tabla 'Tareas' relacionada con la tabla 'Trabajos' mediante el campo común 'IdTipoTrabajo' ( en concreto los trabajos se definen con el campo Tareas.IdListado)
Los intervalos de fecha no son anuales, sino definidos mediante las variables tipo fecha: Fecha1, Fecha2 y Fecha3
He probado de mil maneras y siempre obtengo algún error...
RegistroSelect = "SELECT DISTINCT Trabajos.IdCliente" & _
"FROM ( " & _
" SELECT Trabajos.IdCliente" & _
"FROM Trabajos INNER JOIN Tareas ON Trabajos.IdTipoTrabajo = Tareas.IdTipoTrabajo " & _
"WHERE ( ((Tareas.IdListado)= 6 ) AND ((Trabajos.FechaTrabajo) BETWEEN # " & Fecha2 & " # AND # " & Fecha3 & " # ) ) " & _
" ) AS T1 " & _
"INNER JOIN ( " & _
"SELECT Trabajos.IdCliente" & _
"FROM Trabajos INNER JOIN Tareas ON Trabajos.IdTipoTrabajo = Tareas.IdTipoTrabajo " & _
"WHERE ( ((Tareas.IdListado)= 6 ) AND ((Trabajos.FechaTrabajo) BETWEEN # " & Fecha1 & " # AND # " & Fecha2 & " # ) ) " & _
" ) AS T2 " & _
"ON T1.IdCliente= T2.IdCliente"
En este código me da el error: el campo Trabajos.IdCliente puede que haga referencia a más de una tabla de las especificadas en la clausula FROM
¿Alguna idea?
Gracias a todos por adelantado
Necesito seleccionar los registros de una única tabla 'Trabajos' que hayan realizado un tipo de trabajo concreto en dos periodos de tiempo diferentes: Por ejemplo ¿Qué clientes han vacunado a su mascota el año 2016 y también el año 2017? Necesito obtener los clientes que han vacunado los dos años.
La tabla Trabajos utiliza para este fin los campos IdCliente, IdTipoTrabajo y FechaTrabajo
El tipo de trabajo se debe obtener de una segunda tabla 'Tareas' relacionada con la tabla 'Trabajos' mediante el campo común 'IdTipoTrabajo' ( en concreto los trabajos se definen con el campo Tareas.IdListado)
Los intervalos de fecha no son anuales, sino definidos mediante las variables tipo fecha: Fecha1, Fecha2 y Fecha3
He probado de mil maneras y siempre obtengo algún error...
RegistroSelect = "SELECT DISTINCT Trabajos.IdCliente" & _
"FROM ( " & _
" SELECT Trabajos.IdCliente" & _
"FROM Trabajos INNER JOIN Tareas ON Trabajos.IdTipoTrabajo = Tareas.IdTipoTrabajo " & _
"WHERE ( ((Tareas.IdListado)= 6 ) AND ((Trabajos.FechaTrabajo) BETWEEN # " & Fecha2 & " # AND # " & Fecha3 & " # ) ) " & _
" ) AS T1 " & _
"INNER JOIN ( " & _
"SELECT Trabajos.IdCliente" & _
"FROM Trabajos INNER JOIN Tareas ON Trabajos.IdTipoTrabajo = Tareas.IdTipoTrabajo " & _
"WHERE ( ((Tareas.IdListado)= 6 ) AND ((Trabajos.FechaTrabajo) BETWEEN # " & Fecha1 & " # AND # " & Fecha2 & " # ) ) " & _
" ) AS T2 " & _
"ON T1.IdCliente= T2.IdCliente"
En este código me da el error: el campo Trabajos.IdCliente puede que haga referencia a más de una tabla de las especificadas en la clausula FROM
¿Alguna idea?
Gracias a todos por adelantado
Valora esta pregunta


0