Resta de Consultas en SQL Server 2000

Tengo instalado el SQL Server 2000, el problema que se me esta presentando actualmente es que necesito hacer una resta entre dos consultas, se que para eso existe el EXCEPT pero esta inahibiltado, entonces mi pregunta es ¿Cómo hago o como se puede hacer una resta entre dos consultas en SQL 2000?...

1 respuesta

Respuesta
1
Creo que quieres restar los datos de un qry con otro, para eso puedes usar un LEFT JOIN entre ambos qrys, te detallo un ejemplo para que tu lo uses en tu escenario:
select  id_empleado, fecha, monto
from     tabla_ventas_2009
select  id_empleado, fecha, monto
from     tabla_ventas_2008
tu quieres los empleados que vendieron el 2009 pero no el 2008:
select  a.id_empleado, a.fecha, a.monto
from     tabla_ventas_2009 a LEFT JOIN tabla_ventas_2008 b on a.id_empleado=  b.id_empleado
where    b.id_empleado is null  --Aca nos aseguramos que nos de la diferencia.
Hola, disculpa la aclaracion tardia, lo que pasa es que he
estado probando con todo para no fastidiarte tanto y quitarte tu tiempo, pero es que no me sale la consulta que quiero, por eso otra vez YO.. Te explico yo
tengo las siguientes tablas: orden, examen, prueba y resultado,... Yo
hago la consulta desde orden hasta resultado utilizando un rigth outer
join para que me muestre todas las pruebas de una orden que se ha
hecho aunque aun no tengan resultado, y si existe alguna que ya se le ha ingresado un resultado que tambien me
las muestre, es decir, que me muestre de una orden X las pruebas que tienen resultados y las que no; pero lamentablemte y no se por que? no me lo
hace ;-(.... Este es el codigo que he estado trabajando, pero con este
me repite todos los resultados de las pruebas para cualquier tipo de
orden, claro esta que todos los pacientes no tienen los mismos
resultados ;-)...
SELECT  Examen.Cod_Examen, 
              Prueba.Cod_Prueba,
              Examen_Orden.Nro_Orden,
              Prueba_Orden_Resultado.Nro_Orden,
              Prueba_Orden_Resultado.Resultado,
              Prueba.Valor_Min,
              Prueba. Valor_Max,
              Prueba. Medida,
              Prueba. Descripción
FROM Examen, Orden, Examen_Orden,
             { oj Prueba_Orden_Resultado Right OUTER JOIN Prueba ON
                Prueba_Orden_Resultado.Cod_Prueba = Prueba.Cod_Prueba }
WHERE Examen_Orden.Cod_Examen = Examen.Cod_Examen  and
             Examen.Cod_Examen = Prueba.Cod_Examen              
and
             Orden.Nro_Orden = Examen_Orden.Nro_Orden           and
             Orden.Nro_Orden != '00000'
             order by Examen_Orden.Nro_Orden, Prueba.Cod_Prueba;
Por favor si me podrías ayudar u orientar te lo agradecería de antemano... ;-)
Primero te recomiendo que des un orden a tu query y revises los cambios que he puesto en tus join, puse un left join que podría cubrir lo que necesitas, en caso no funcione prueba left outer join, lo ingreso en todos los join porque es necesario para que se jalen en caso tengas o no tengas datos en las tablas correspondientes, verifica la sintaxis que le he agregado sin revisar porque no tengo las tablas:
SELECT  Examen.Cod_Examen,
              Prueba.Cod_Prueba,
              Examen_Orden.Nro_Orden,
              Prueba_Orden_Resultado.Nro_Orden,
              Prueba_Orden_Resultado.Resultado,
              Prueba.Valor_Min,
              Prueba.Valor_Max,
              Prueba.Medida,
              Prueba.Descripcion
FROM    Examen left join Prueba on examen.cod_examen= prueba.cod_examen
        left join examen_orden on examen_orden.cod_examen= examen.cod_examen
        left join prueba_orden_resultado on Prueba_Orden_Resultado.Cod_Prueba = Prueba.Cod_Prueba
        left join Orden on Orden.Nro_Orden = Examen_Orden.Nro_Orden           and
             Orden.Nro_Orden != '00000'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas