|
2 cosas...
1) Nunca hagas un union, porque segun mi experiencia con SQL, si bien las tablas necesitan ser iguales, la consulta puede producir resultados distintos, asi que siempre mejor usar tablas temporales... donde en ambas guardas los datos que necesitas y luego por medio de un select puedes sacar los datos que necesitas...
2) Has probado meter ambos resultados en tablas temporales y sacarlos con un SELECT DISTINCT ???? eso creo, seria tu solucion.
Con el tema de las tablas temporales tienes 2 opciones:
CREATE @tabla TABLE (campos)
CREATE TABLE #tabla (campos)
La diferencia, es el tipo de tabla temporal, si bien las 2 son temporales, la que se crea con #tabla si bien es temporal a su vez es fisica, lo que significa que el server la crea como un objeto temporal por lo cual hasta que no termina la consulta la tabla existe... La otra @tabla es solo de memoria, asi que por propia experiencia te sugiero que solo utilices @tabla cuando no pases los 4000 registros, ya que si lo haces y varias consultas son ejecutadas al mismo tiempo el equipo se pone "tonto" y un simple "select * from tabla where 1=0" puede tardar 5 minutos, eso es porque MSSQL fragmenta mucho la memoria en este tipo de tabla....
Saludetes !
__________________
El diseño dira si tiene futuro...
|