Oracle

Páginas: 2 (413 palabras) Publicado: 20 de marzo de 2014
Instructora: Martha Cecilia Ospina Pineda

EJEMPLO DE UPDATE CON SUBCONSULTA

--creemos la tabla empleados con base en la tabla employees de HR, que quede con todos los campos y los datosexistentes

CREATE TABLE empleados
AS
(SELECT * FROM hr.employees)

--ahora creemos la tabla departamentos con base en las columnas department_id y department_name de la tabla departments de HR,que queden con los nombres cod_departamento y nom_departamento, que queden con los datos existentes.

CREATE TABLE departamentos
AS
(SELECT department_id cod_departamento,Department_name nom_departamento
FROM hr.departments)

--agreguemos la columna T_empleados (total empleados) en la tabla departamentos

ALTER TABLE departamentos
Add T_empleados number(3)--veamos qué datos tiene la tabla departamentos

SELECT * FROM departamentos

COD_DEPARTAMENTO
NOM_DEPARTAMENTO
T_EMPLEADOS
10
Administration
-
20
Marketing
-
30
Purchasing
-
40Human Resources
-
50
Shipping
-
60
IT
-
70
Public Relations
-
80
Sales
-
90
Executive
-
100
Finance
-
110
Accounting
-
120
Treasury
-
130
Corporate Tax
-
140Control And Credit
-
150
Shareholder Services
-

--Nótese que la columna que acabamos de agregar contiene valores nulos. Ahora vamos a llenar esta columna: a cada departamento le vamos aasignar el número total de empleados.

UPDATE departamentos
   SET T_empleados = (SELECT COUNT(employee_id)
                      FROM empleados
                      wheredepartment_id=cod_departamento
                      )

como en este caso las dos columnas se llaman diferente, no fue necesario cualificar los nombres.  

Si suponemos que las dos columnas tienen el mismo nombre(department_id), debemos cualificar el nombre de la columna de la tabla externa, así:

 UPDATE departamentos
SET T_empleados = (SELECT COUNT(employee_id)
FROM empleados...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Oracle
  • Oracle
  • oracle
  • Oracle
  • Oracle
  • oracle
  • ORACLE
  • oracle

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS