SQL - Excluir datos de una lista(Urgente!!ayuda!!!!!)

 
Vista:

Excluir datos de una lista(Urgente!!ayuda!!!!!)

Publicado por Antonio (3 intervenciones) el 30/10/2007 22:51:49
Jejeje trate de responder a isaias y me respondi solo, aqui esta mi pregunta de nuevo!

----------
Perdon, la pregunta no estaba completa cuando la mande, me faltaron algunos datos, gracias por contestar!!

Pense que habia resuelto mi problema pero no :(, sigo donde mismo!

Estoy usando SQL Service Enterprise

Añadi los queris que estoy usando para sacar mi reporte. Estan al final.

,Muchas gracias.
------------------


Buenas tardes, Espero me puedan ayudar con el siguiente problema, se los agradeceria mucho ya que tengo un dos dias y no salgo de donde mismo.

Tengo 4 tablas: Actividades, Maquinas, Servicios y TrabajosRealizados

En mi tabla de Actividades tengo : Contiene actividades, y la descripcion de la actividad. Ejem:

Activi_id Activi_Desc (Tratare de hacer mis ejem..lo mas simple posible :)
--------------------------------
1 Lavar
2 Planchar
3 Aspirar
4 Mapear ( o Trapear en español)

Luego tengo mi tabla de maquina donde tengo: Maquina, y descripcion de la maquina

Maquinas: (todas mis maquinas pueden hacer todas las actividades)

Maquina_id maquina_desc
----------------------------------------------
63 x
63 x
63 x
63 x
64 y
64 y
64 y
64 y
65 z
65 z
65 z
65 z

Mi tabla de servicios, donde tengo que actividad puede realizar cada maquina, en este caso, todas las maquinas pueden realizar todas las actividades.

Servicios:

Maquina_id activi_id
---------------------------------------------------------------
63 1
63 2
63 3
63 4

64 1
64 2
64 3
64 4

65 1
65 2
65 3
65 4

Luego tengo mi tabla de TrabajosRealizados tengo: que actividad se realizo y por que maquina fue echa la actividad: ejem:

TrabajosRealizados:

Maquina_id Actividad_id Quien
________________________________

63 1 Pepe
63 3 Pepe
63 4 Pepe

64 3 Pepe
64 4 Pepe

65 2 Pepe

-----------------------------------------------------------------------------------------------------------------------

Mi problema es que quiero sacar que sacar un reporte donde muestre todas las maquinas con sus actividades que pueden realizar, y marcar que actividades se realizaron con cada maquina.

Mi reporte seria algo asi:

Reporte:

Maquina_id activi_id Trabajo Realizado Quien
----------------------------------------------------------------------------------
63 1 Si Pepe
63 2 No Null
63 3 Si Pepe
63 4 Si Pepe

64 1 No Null
64 2 No Null
64 3 Si Pepe
64 4 Si Pepe

65 1 No Null
65 2 Si Pepe
65 3 No Null
65 4 No Null

************

Este es el query que uso para sacar mi reporte, primero hago saco todo lo que esta en mi tabla de Servicios(todas las maquinas y las actividades que pueden hacer.

Luego de ahi estoy tratando de excluir las actividades que se realizaron, las que se que tengo en mi tabla de trabajos realizados.

para Luego estoy uniendo esos resultados a el resultado que tengo en mi tabla de trabajos realizados, ya que quiero saber quien realizo las actividades.

Mi query en el que estoy teniendo problemas es cuando trato de excluir las actividades que tenfo en mi otro query.

Por ejemplo: Este query me da las actividades que se realizaron.

Select Maquina_id, Actividad_id, Quien From TrabajosRealizados

Inner join Maquinas on Maquinas.maquina_id = trabajosRealizados.maquina_id
Inner join Actividades on Actividades.activi_id = trabajosRealizados.actividad_id
inner join misUsuarios on misUsuarios.quien = trabajosRealizados.quien

Este me regresa:

Maquina_id Actividad_id Quien
________________________________
63 1 Pepe
63 3 Pepe
63 4 Pepe
64 3 Pepe
64 4 Pepe
65 2 Pepe

**************HASTA AQUI TODO ESTA BIEN
El problema es hacer lo siquiente

Select Maquina_id, Actividad_id, Quien From TrabajosRealizados

Inner join Maquinas on Maquinas.maquina_id = trabajosRealizados.maquina_id
Inner join Actividades on Actividades.activi_id = trabajosRealizados.actividad_id
inner join misUsuarios on misUsuarios.quien = trabajosRealizados.quien

Union all

Select Maquina_id, Activi_id from Servicios
Inner join Maquinas on Maquinas.maquina_id = Servicios.maquina_id
Inner join Actividades on Actividades.activi_id = Servicios.activi_id
AND
(
Actividades.activi_id NOT IN (Select Distinct actividades.actividades_activi_id from trabajosRealizados) or (Maquinas.maquina_id NOT IN (Select distinct maquinas.maquina_id from trabajosRealizados)
)

***********************************************************

Mi problema es el NOT IN, no se como excluir las actividades que son iguales que las que tengo en trabajos realizados para poder poner esas(trabajosRealizados) ya que son las que me interesan y no quiero tener duplicados....

No se si me explique bien, pero no duden en preguntarme cualquier duda....y gracias por ayudar!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder