Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/07/2008, 02:16
seyko
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: Encapsular consultas

Código:

SELECT
		pendientes.muestraid AS sin_facturar,
		sin_actas.muestraid AS ensayos_pendientes,
		muestra.muestraid,
		muestra.albaran
FROM	   muestra
		JOIN ensayos 		ON muestra.tipomuestraid = ensayos.ensayoid
		LEFT OUTER JOIN (SELECT DISTINCT muestraid 
						FROM 	ensayo_muestra
						WHERE 	(estadoalbaran = 0 OR estadoalbaran IS NULL) AND inactivo IS NULL
			) pendientes 	ON pendientes.muestraid = muestra.muestraid
		LEFT OUTER JOIN (SELECT DISTINCT ensayo_muestra.muestraid 
						FROM 	ensayo_muestra WHERE ensayo_muestra.inactivo IS NULL
						EXCEPT
						SELECT DISTINCT ensayo_muestra.muestraid 
						FROM 	ensayo_muestra
								JOIN actas_archivo  ON actas_archivo.ensayo_muestraid = ensayo_muestra.ensayo_muestraid
						WHERE 	(acta_clase = 1 OR acta_clase IS NULL)
			) sin_actas ON sin_actas.muestraid = muestra.muestraid
WHERE	muestra.inactivo IS NULL
		AND ((pendientes.muestraid IS NOT NULL) OR (0 = variable1))
		AND ((sin_actas.muestraid IS NOT NULL) OR 0 = variable2)
Si no entiendes algo.... te buscas la vida
jaja es broma, pregunta!

Salu2