Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/10/2010, 08:52
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Duda respecto Delete

Buenos días learn_sql, creo que te faltó incluir en tu declaración de tu tabla EMPLEADOS la declaración del campo NUM_DPT, ya que sólo el contraint de llave foránea, pero no la declaración del campo como tal. Para hacer lo que quieres existen varias formas, utilizando los operadores IN, EXIST y ANY te pongo un ejemplo de cómo sería, pero te recomiendo que cheques tu ayuda en línea para que aprendas más acerca de estos operadores.

con ANY:
Código SQL:
Ver original
  1. DELETE FROM DEPARTAMENTOS
  2. WHERE NOT(NUM_DPT = ANY (SELECT DISTINCT NUM_DPT FROM EMPLEADOS))

con EXISTS:
Código SQL:
Ver original
  1. DELETE FROM DEPARTAMENTOS WHERE
  2. NOT EXISTS (SELECT * FROM EMPLEADOS E WHERE E.NUM_DPT = DEPARTAMENTOS.NUM_DPT)

con IN:
Código SQL:
Ver original
  1. DELETE FROM DEPARTAMENTOS
  2. WHERE NUM_DPT NOT IN (SELECT DISTINCT NUM_DPT FROM EMPLEADOS)

Saludos
Leo.