SQL - S.O.S - CONSULTA SQL

   
Vista:

S.O.S - CONSULTA SQL

Publicado por Dani (2 intervenciones) el 22/10/2009 13:38:27
Desde ya gracias a todos.

Estoy pillado y no consigo avanzar por culpa de una consulta que no tengo ni idea de como hacerlo o es que tengo la cabeza que no me da más.

Resulta que partiendo de las 2 tablas siguientes:

TABLA1 - EMPLEADOS

NOMBRE EDAD SEXO
Pepito 25 años Varón
Juana 26 años Mujer
Luis 30 años Varón
Marta 34 años Mujer

TABLA 2 - DEPARTAMENTOS

NOMBRE FUNCION
Pepito Administración
Pepito Comercial
Pepito Grabador
Juana Administración
Juana Operador
Luis Comercial
Luis Secretaria
Luis Administración
Luis Operador
Marta Director
Marta Comercial

Necesito sacar todos aquellos empleados que sean de los departamentos de Administración y Comercial y que no sean Director ni Operador, osease PEPITO.

Eternamente agradecidos.
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

RE:S.O.S - CONSULTA SQL

Publicado por Antoni (4 intervenciones) el 22/10/2009 17:37:48
Solo se me ocurre en 2 pasos:

1º) Crea una tabla TEMPORAL con las columnas NOMBRE y VALOR (Entero) con las filas de TABLA 2 - DEPARTAMENTOS:

NOMBRE=NOMBRE
VALOR= 1 para Administracion
2 para Comercial
4 para Director
8 para Operador
0 para el resto de FUNCION

2º) Ejecuta la siguiente consulta sobre la tabla creada:

SELECT NOMBRE, SUM(VALOR) FROM TEMPORAL
GROUP BY NOMBRE
HAVING VALOR=3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:S.O.S - CONSULTA SQL

Publicado por Dani (2 intervenciones) el 23/10/2009 10:39:36
Gracias por tu ayuda, pero no sirve ya que ha de ser dinámico, no estático, es decir, tendré unos checkbox con cada departamento que seleccionara el usuario a su libre albedrío.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:S.O.S - CONSULTA SQL

Publicado por Ethan (9 intervenciones) el 10/11/2009 01:02:56
select nombre
from empleados e, departamentos d
where e.nombre=d.nombre
and d.funcion in( 'administrador','comercial')
and e.empleado not exist
(
select 1 from departamentos x where x.funcion in('director','operador')
)

no revise la consulta pero segun la logica eso funcionaroa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar