Ver Mensaje Individual
  #11 (permalink)  
Antiguo 04/09/2009, 01:32
Avatar de moNTeZIon
moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Respuesta: ¿Cómo harías esta consulta?

Cita:
Iniciado por moNTeZIon Ver Mensaje
Aunque estaría muy bien que esta única consulta devolviera los registros que se encuentren en cualquiera de las dos situaciones.
Ciertamente, no puede ser, jeje..
El problema que tengo con la nueva consulta, es que no he sabido rematarla sin tirar de una subconsulta, que imagino que ralentiza la ejecución de ésta bastante.
En la subconsulta con un LEFT JOIN entre PAERTES y ASISTENCIAS obtengo todos los PARTES que tienen relación con la tabla ASISTENCIAS y luego, con el NOT IN me quedo con los PARTES que no devuelva esa subconsulta. O sea, consigo realizar la consulta que devuelve justo lo contrario que necesito, por eso hago la subconsulta, para quedarme con los registros que no estén ahí.
Código SQL:
Ver original
  1. SELECT P.*
  2. FROM PartesTrabajo P
  3. WHERE IdParteTrabajo NOT IN (
  4. SELECT IdParteTrabajo FROM PartesTrabajo P1
  5. LEFT JOIN AsistenciasTrabajadores A1 ON P1.CodigoTrabajador = A1.CodigoTrabajador AND P1.Fecha = A1.Fecha
  6. WHERE A1.TipoAsistencia='A' )
¿Puede conseguirse esto sin usar subconsultas?
Gracias de nuevo!
__________________
..:: moNTeZIon ::..