| Inicio | Tu Cuenta | Manuales | Foros | Tutoriales | Los TOP | Empleos| Artículos | Comentarios |   

Manual Oracle
 1: Monitoreo de Bloqueos 
 2: Manejo de Clusters en Oracle 
 3: Analiszando las Consultas tipo Hash 
 4: Introducción a ORACLE Developer - Castellano 
 5: Creación de un Formulario en Developer Forms - Castellano 
 6: Administracion de Base de Datos Oracle 
 7: Tutorial de Oracle9i Reports 
 8: Manual de Developer Forms 
 9: Manual de Oracle9i Reports 
 10: External tables en Oracle 9i 


Mas de Oracle


Noticias Oracle


Error Ora-


Script Oracle Español
· Scripts para DBA
· SQL ANSI en Oracle 10g
· Pivoting INsert en Oracle 10g
· Sentencias de inserción en varias tablas - Oracle 10g
· Sentencia Insert condicionada - Oracle 10 g

[ Más en la Sección de Noticias ]



Pivoting INsert en Oracle 10g
Enviado el Viernes, 11 agosto a las 12:13:40 por csr

Todo sobre Oracle 10G

 

Pivoting Insert



Una utilización adicional de la sentencia INSERT ALL, puede ser realizada cuando se desea transformar un registro no normalizado en varios registros "normalizados"

Por ejemplo, asumiendo que se tiene una tabla VENTAS con los totales de las ventas realizadas por cada vendedor durante los distintos meses del año, desde Enero hasta Diciembre; como lo muestra la siguiente tabla, las ventas para el empleado con Id=1 para los años 2004 y 2005

IDVENDEDOR
VENTAS_ENERO
VENTAS_FEBRERO
...
VENTAS_DIC
ANIO
1 6000 8000
...
10000 2005
1 5000 7000
...
9500 2004

y se desea trasladar los datos a una tabla VENTAS_HISTORIA que tiene la siguiente descripción:

IDVENDEDOR   NUMBER
ANIO   NUMBER
TOTAL_VENTAS   NUMBER

se podría usar la sentencia INSERT ALL de la siguiente manera

INSERT ALL
INTO ventas_historia VALUES (idVendedor, anio, ventas_enero)
INTO ventas_historia VALUES (idVendedor, anio, ventas_febrero)
INTO ventas_historia VALUES (idVendedor, anio, ventas_marzo)
INTO ventas_historia VALUES (idVendedor, anio, ventas_abril)
INTO ventas_historia VALUES (idVendedor, anio, ventas_mayo)
...
...

INTO ventas_historia VALUES (idVendedor, anio, ventas_Dic)
SELECT *
FROM ventas;

Con lo cual, cada registro registro inicial se convertiría en 12 registros a insertar en la tabla destino(un registro en la tabla ventas_historia traduce las ventas de un mes en un año determinado). Entonces, finalmente nuestros dos registro iniciales de la tabla VENTAS se transformarían en 24 registros en la tabla VENTAS_HISTORIA


Tomado de Zonaoracle.com

 
Enlaces Relacionados
· Más Acerca de Todo sobre Oracle 10G
· Noticias de csr


Noticia más leída sobre Todo sobre Oracle 10G:
Ejemplo de Código JSP (Java Stored Procedures)



Votos del Artículo
Puntuación Promedio: 2.28
votos: 7


Por favor tómate un segundo y vota por este artículo:

Malo
Regular
Bueno
Muy Bueno
Excelente




Opciones

Versión Imprimible  Versión Imprimible

Enviar a un Amigo  Enviar a un Amigo


Manual Oracle
Oracle Manual y tutorial, Pl/Sql, Discoverer, Forms, Sql y Plsql - Orape



Adaptado para nuke 6.0 por DragónNB