Beruflich Dokumente
Kultur Dokumente
En esta base de datos se va a cargar todas las tablas que vamos que tiene el ETL
createfunctiondbo.fn_mes(@mint)returnsvarchar(15)
begin
declare@mestable(codigoint,nombrevarchar(15))
insert@mesvalues(1,'Enero'),(2,'Febrero'),
(3,'Marzo'),(4,'Abril'),(5,'Mayo'),(6,'Junio'),
(7,'Julio'),(8,'Agosto'),(9,'Setiembre'),
(10,'Octubre'),(11,'Noviembre'),(12,'Diciembre')
return(selectnombrefrom@meswherecodigo=@m)
end
go
-createfunctiondbo.fn_diaSem(@dint)returnsvarchar(15)
begin
declare@semanatable(codigoint,nombrevarchar(15))
insert@semanavalues(1,'Lunes'),(2,'Martes'),
(3,'Mircoles'),(4,'Jueves'),(5,'Viernes'),
(6,'Sbado'),(7,'Domingo')
return(selectnombrefrom@semanawherecodigo=@d)
end
go
/*--------------------------------DEPARTAMENTO--------------------------------*/
createtableDepartamento(
IdDepartamentonchar(6)notnullprimarykey,
NombreDepartamentonvarchar(50)notnull);
/*---------------------------------------------------------------------------*/
/*--------------------------------PROVINCIA-----------------------------------*/
createtableProvincia(
IdProvincianchar(6)notnullprimarykey,
NombreProvincianvarchar(50)notnull,
IdDepartamentonchar(6)foreignkeyreferencesDepartamento(IdDepartamento)notnull);
/*---------------------------------------------------------------------------*/
/*---------------------------------DISTRITO-----------------------------------*/
createtableDistrito(
IdDistritonchar(7)notnullprimarykey,
NombreDistritonvarchar(50)notnull,
IdProvincianchar(6)foreignkeyreferencesProvincia(IdProvincia)notnull);
/*---------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
/*------------------------------CLIENTE---------------------------------------*/
createtableCliente(
IdClientenchar(6)primarykeynotnull,
ApellidoClientenvarchar(50)notnull,
NombreClientenvarchar(50)notnull,
DniClientenchar(8)notnull,
IdDepartamentonchar(6)foreignkeyreferencesDepartamento(IdDepartamento)notnull,
IdProvincianchar(6)foreignkeyreferencesProvincia(IdProvincia)notnull,
IdDistritonchar(7)foreignkeyreferencesDistrito(IdDistrito)notnull,
MailClientenvarchar(50)notnull,
TelClientenvarchar(15)notnull);
/*---------------------------------------------------------------------------*/
/*------------------------------CARGO-----------------------------------------*/
createtableCargo(
IdCargonchar(6)primarykeynotnull,
NombreCargonvarchar(50)notnull);
/*---------------------------------------------------------------------------*/
/*------------------------------EMPLEADO--------------------------------------*/
createtableEmpleado(
IdEmpleadonchar(6)primarykeynotnull,
ApellidoEmpleadonvarchar(50)notnull,
NombreEmpleadonvarchar(50)notnull,
IdCargonchar(6)foreignkeyreferencesCargo(IdCargo)notnull,
DniEmpleadonchar(8)notnull,
IdDepartamentonchar(6)foreignkeyreferencesDepartamento(IdDepartamento)notnull,
IdProvincianchar(6)foreignkeyreferencesProvincia(IdProvincia)notnull,
IdDistritonchar(7)foreignkeyreferencesDistrito(IdDistrito)notnull,
MailEmpleadonvarchar(50)notnull,
TelEmpleadonvarchar(15)notnull);
/*---------------------------------------------------------------------------*/
/*------------------------------PROVEEDOR------------------------------------*/
createtableProveedor(
IdProveedornchar(6)primarykey,
NombreProveedornvarchar(50)notnull,
RucProveedornchar(11)notnull,
ApeliidoContactonvarchar(50)notnull,
NombreContactonvarchar(50)notnull,
DireProveedornvarchar(50)notnull,
MailProveedornvarchar(50)notnull,
TelProveedornvarchar(15)notnull);
/*---------------------------------------------------------------------------*/
/*------------------------------CATEGORIA------------------------------------*/
createtableCategoria(
IdCategorianchar(6)primarykeynotnull,
NombreCategorianvarchar(50)notnull);
/*---------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
/*-------------------------------MARCA--------------------------------------*/
createtableMarca(
IdMarcanchar(6)primarykeynotnull,
NombreMarcanvarchar(50)notnull);
/*---------------------------------------------------------------------------*/
/*-------------------------------PRODUCTO-----------------------------------*/
createtableProducto(
IdProductonchar(6)primarykeynotnull,
DescriProductovarchar(50)notnull,
IdMarcanchar(6)foreignkeyreferencesMarca(IdMarca)notnull,
IdProveedornchar(6)foreignkeyreferencesProveedor(IdProveedor)notnull,
IdCategorianchar(6)foreignkeyreferencesCategoria(IdCategoria)notnull,
PrecioUnidadmoneynotnull,
UnidadesEnExistenciasmallintnotnull);
/*---------------------------------------------------------------------------*/
/*--------------------------------ORDEN-------------------------------------*/
createtableOrden(
IdOrdennchar(6)primarykeynotnull,
IdClientenchar(6)foreignkeyreferencesCliente(IdCliente)notnull,
IdEmpleadonchar(6)foreignkeyreferencesEmpleado(IdEmpleado)notnull,
IdDistritonchar(7)foreignkeyreferencesDistrito(IdDistrito)notnull,
FechaPedidodatenotnull,
FechaEntregadatenotnull);
/*---------------------------------------------------------------------------*/
/*-----------------------------DETALLEORDEN----------------------------------*/
createtableDetalleOrden(
IdOrdennchar(6)foreignkeyreferencesOrden(IdOrden)notnull,
IdProductonchar(6)foreignkeyreferencesProducto(IdProducto)notnull,
PrecioUnidadmoneynotnull,
Cantidadsmallintnotnull);
/*---------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
INGRESAMOS LOS REGISTROS PARA CADA TABLA CREADA CON EL SIGUIENTE CODIGO
UseETLoad
go
/*------------------------------DEPARTAMENTO---------------------------------------*/
insertintoDepartamentovalues
('DEP007','CALLAO'),('DEP015','LIMA');
--select * from departamento
/*--------------------------------------------------------------------------------*/
/*------------------------------PROVINCIA---------------------------------------*/
insertintoprovinciavalues
('PRV066','CALLAO','DEP007'),('PRV127','LIMA','DEP015');
--select * from provincia
/*--------------------------------------------------------------------------------*/
/*------------------------------DISTRITO---------------------------------------*/
insertintoDistritovalues
('DIS0659','CALLAO','PRV066'),('DIS0660','BELLAVISTA','PRV066'),('DIS0661','CARMEN DE LA LEGUA
REYNOSO','PRV066'),
('DIS0662','LA PERLA','PRV066'),('DIS0663','LA
PUNTA','PRV066'),('DIS0664','VENTANILLA','PRV066'),('DIS1223','LIMA','PRV127'),('DIS1224','ANCON'
,'PRV127'),('DIS1225','ATE','PRV127'),('DIS1226','BARRANCO','PRV127'),('DIS1227','BREA','PRV127'
),('DIS1228','CARABAYLLO','PRV127'),('DIS1229','CHACLACAYO','PRV127'),('DIS1230','CHORRILLOS','PR
V127'),('DIS1231','CIENEGUILLA','PRV127'),('DIS1232','COMAS','PRV127'),('DIS1233','EL
AGUSTINO','PRV127'),('DIS1234','INDEPENDENCIA','PRV127'),('DIS1235','JESUS
MARIA','PRV127'),('DIS1236','LA MOLINA','PRV127'),('DIS1237','LA
VICTORIA','PRV127'),('DIS1238','LINCE','PRV127'),('DIS1239','LOS
OLIVOS','PRV127'),('DIS1240','LURIGANCHO','PRV127'),('DIS1241','LURIN','PRV127'),('DIS1242','MAGD
ALENA DEL MAR','PRV127'),('DIS1243','MAGDALENA
VIEJA','PRV127'),('DIS1244','MIRAFLORES','PRV127'),('DIS1245','PACHACAMAC','PRV127'),('DIS1246','
PUCUSANA','PRV127'),('DIS1247','PUENTE PIEDRA','PRV127'),('DIS1248','PUNTA HERMOSA','PRV127'),
('DIS1249','PUNTA NEGRA','PRV127'),('DIS1250','RIMAC','PRV127'),('DIS1251','SAN
BARTOLO','PRV127'),('DIS1252','SAN BORJA','PRV127'),('DIS1253','SAN
ISIDRO','PRV127'),('DIS1254','SAN JUAN DE LURIGANCHO','PRV127'),('DIS1255','SAN JUAN DE
MIRAFLORES','PRV127'),('DIS1256','SAN LUIS','PRV127'),('DIS1257','SAN MARTIN DE
PORRES','PRV127'),('DIS1258','SAN MIGUEL','PRV127'),('DIS1259','SANTA ANITA','PRV127'),
('DIS1260','SANTA MARIA DEL MAR','PRV127'),('DIS1261','SANTA ROSA','PRV127'),('DIS1262','SANTIAGO
DE SURCO','PRV127'),('DIS1263','SURQUILLO','PRV127'),('DIS1264','VILLA EL
SALVADOR','PRV127'),('DIS1265','VILLA MARIA DEL TRIUNFO','PRV127');
--select * from distrito
/*--------------------------------------------------------------------------------*/
/*------------------------------CLIENTE---------------------------------------*/
insertintoClientevalues
('CL0001','Flores Donayre','Henry
Julio','41998587','DEP007','PRV066','DIS0659','jmorales@hotmail.com','965885232'),
('CL0002','Rios Herrera','Pedro
Hirving','45668899','DEP007','PRV066','DIS0659','jrios@hotmail.com','989562541'),
('CL0003','Ramirez Toscano','Yanet
Stefani','41258896','DEP015','PRV127','DIS1258','rtoscano@hotmail.com','985697321'),
('CL0004','Sanchez Condezo','Jesus
Miguel','47586323','DEP015','PRV127','DIS1257','scondezo@hotmail.com','956985321'),
('CL0005','Santos Palacios','Carlos
Alberto','45632403','DEP015','PRV127','DIS1264','jreyes@hotmail.com','989801241');
ingenierosistemasjfsc1983@gmail.com
/*------------------------------CARGO-----------------------------------------*/
insertintoCargovalues
('CAR001','Gerente General'),
('CAR002','Sub Gerente de Marketing'),
('CAR003','Encargado De Ventas'),
('CAR004','Soporte Tecnico'),
('CAR005','Encargado De Almacen'),
('CAR006','Limpieza en General');
--select * from Cargo
/*--------------------------------------------------------------------------------*/
/*------------------------------EMPLEADO--------------------------------------*/
insertintoEmpleadovalues
('EMP001','Ostos Peres','Alonso
Robert','CAR002','45897856','DEP007','PRV066','DIS0659','ostos_8@hotmail.com','987845122'),
('EMP002','Florencio Ayala','Rey
Sonia','CAR003','46235689','DEP007','PRV066','DIS0659','florencio_4@hotmail.com','986532152'
),
('EMP003','Bello De la Cruz','Lesly
Consuelo','CAR001','45895675','DEP007','PRV066','DIS0659','bello_dela@hotmail.com','98658718
5'),
('EMP004','Caro Visitacion','Diana
Soledad','CAR005','46235689','DEP015','PRV127','DIS1264','carovisitacion@hotmail.com','98652
4871'),
('EMP005','Breas Silva','Carlos
Angelo','CAR006','46235689','DEP015','PRV127','DIS1264','breassilva@hotmail.com','987412548'
);
--select * from Empleado
/*--------------------------------------------------------------------------------*/
/*------------------------------PROVEEDOR------------------------------------*/
insertintoProveedorvalues
('PVD001','Computer sac','20489745619','Evangelista Hijar','Hefner
Euler','Bolivia','ehijar@gmail.com','988957411'),
('PVD002','IDAT PER sac','20455385219','Jacobo Eugenio','Maria
Lucero','Colombia','jbucho@intelecperu.com','987654321'),
('PVD003','CISCO PERU sac','20859721219','Maguia Santos','Williams
Arqumides','Colombia','msantos@ciscoperu.com','984125891'),
('PVD004','CESCA EIRL','20885621479','Rimac Rosales','Noemi
Ofelia','Peru','rrosales@cesca.com','984184591'),
('PVD005','INTERNATIONAL EIRL','20741236589','Saavedra Espinoza','Liz
Sully','Brasil','sespinoza@international.com','987456211');
--select * from Proveedor
/*--------------------------------------------------------------------------------*/
/*------------------------------CATEGORIA------------------------------------*/
insertintoCategoriavalues
('CTG001','Laptops'),
('CTG002','CPU'),
('CTG003','Memoria'),
('CTG004','Placa'),
('CTG005','Mouse'),
('CTG006','Teclado');
--select * from Categoria
/*--------------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
/*-------------------------------MARCA--------------------------------------*/
insertintoMarcavalues
('MRC001','Toshiba'),
('MRC002','Hp'),
('MRC003','Intel'),
('MRC004','PcChip'),
('MRC005','Micronics'),
('MRC006','Kinstong');
--select * from Marca
/*--------------------------------------------------------------------------------*/
/*-------------------------------PRODUCTO-----------------------------------*/
insertintoProductovalues
('PR0001','TOSHIBA LAPTOP S45-A4111SL','MRC001','PVD002','CTG001',2899.00,10),
('PR0002','Placa Inte Core I5','MRC003','PVD003','CTG004',390.00,15),
('PR0003','Memoria DDR 4 32GB','MRC006','PVD004','CTG003',200.00,8),
('PR0004','MOUSE Optico','MRC005','PVD002','CTG005',60.00,20),
('PR0005','TECLADO Multimedia','MRC005','PVD001','CTG006',60.00,18);
/*--------------------------------------------------------------------------------*/
/*-----------------------------DETALLEORDEN----------------------------------*/
insertintoDetalleOrdenvalues
('OD0001','PR0001',2899.00,3),
('OD0002','PR0001',2899.00,4),
('OD0003','PR0003',400.00,2),
('OD0004','PR0005',300.00,5),
('OD0005','PR0004',360.00,6),
('OD0006','PR0002',200.00,1);
--select * from DetalleOrden
/*--------------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
createfunctiondbo.fn_mes(@mint)returnsvarchar(15)
begin
declare@mestable(codigoint,nombrevarchar(15))
insert@mesvalues(1,'Enero'),(2,'Febrero'),
(3,'Marzo'),(4,'Abril'),(5,'Mayo'),(6,'Junio'),
(7,'Julio'),(8,'Agosto'),(9,'Setiembre'),
(10,'Octubre'),(11,'Noviembre'),(12,'Diciembre')
return(selectnombrefrom@meswherecodigo=@m)
end
go
-createfunctiondbo.fn_diaSem(@dint)returnsvarchar(15)
begin
declare@semanatable(codigoint,nombrevarchar(15))
insert@semanavalues(1,'Lunes'),(2,'Martes'),
(3,'Mircoles'),(4,'Jueves'),(5,'Viernes'),
(6,'Sbado'),(7,'Domingo')
return(selectnombrefrom@semanawherecodigo=@d)
end
go
/*------------------------------UBIGEO---------------------------------------*/
createtableDimUbigeo(
Ubigeo_SKeyintidentity (1,1)primarykeynotnull,
IdDepartamentonchar(10)notnull,
NombreDepartamentonvarchar(50)notnull,
IdProvincianchar(10)notnull,
NombreProvincianvarchar(50)notnull,
IdDistritonchar(10)notnull,
NombreDistritonvarchar(50)notnull);
--Select * from DimUbigeo
/*---------------------------------------------------------------------------*/
/*------------------------------CLIENTE---------------------------------------*/
createtableDimCliente(
EClienteintidentity (1,1)primarykeynotnull,
IdClientenchar(6)notnull,
NombreClientenvarchar(150)notnull,
IdDistritonchar(10)notnull,
NombreDistritonvarchar(50)notnull,
DniClientenchar(8)notnull);
--Select * from DimCliente
/*---------------------------------------------------------------------------*/
/*------------------------------EMPLEADO--------------------------------------*/
createtableDimEmpleado(
EEmpleadointidentity (1,1)primarykeynotnull,
IdEmpleadonchar(6)notnull,
NombreEmpleadonvarchar(150)notnull,
IdDistritonchar(10)notnull,
NombreDistritonvarchar(50)notnull,
DniEmpleadonchar(8)notnull);
--Select * from DimEmpleado
/*---------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
/*--------------------------------PRODUCTO----------------------------------*/
createtableDimProducto(
EProductointidentity (1,1)primarykeynotnull,
IdProductonchar(6)notnull,
DescriProductovarchar(100)notnull,
IdMarcanchar(6)notnull,
NombreMarcanvarchar(50)notnull,
IdCategorianchar(6)notnull,
NombreCategorianvarchar(50)notnull,
PrecioUnidadmoneynull);
--Select * from DimProducto
/*---------------------------------------------------------------------------*/
/*------------------------------TIEMPO--------------------------------------*/
createtableDimTiempo(
FechaIdintprimarykeynotnull,
Fechadatetimenotnull,
Aosmallintnotnull,
Trimestretinyintnotnull,
Mestinyintnotnull,
NomMesvarchar(15)notnull,
Diatinyintnotnull,
DiaSemtinyintnotnull,
NomDiaSemvarchar(15)notnull);
--Select * from DimTiempo
/*---------------------------------------------------------------------------*/
/*------------------------------VentaOrden--------------------------------------*/
createtableFactVentaOrden(
EClienteintreferencesDimClientenotnull,
EEmpleadointreferencesDimEmpleadonotnull,
Ubigeo_SKeyintreferencesDimUbigeonotnull,
EProductointreferencesDimProductonotnull,
FechaIdintreferencesDimTiemponotnull,
Totalmoneynotnull);
--Select * fromFactVentaOrden
/*---------------------------------------------------------------------------*/
ingenierosistemasjfsc1983@gmail.com
CREAMOS UNA CONEXIN CON LA BASE DE DATO DE LA CUAL SE VAN A OBTENER LOS
REGISTROS
PROBAMOS LA CONEXIN
RESULTADO
ingenierosistemasjfsc1983@gmail.com
Se procede a realizar
Creamos una tarea Ejecutar SQL, como se detalla para luego elegimos y hacemos click derechoEDITAR
ingenierosistemasjfsc1983@gmail.com
10
ingenierosistemasjfsc1983@gmail.com
11
CREAMOS CINCO TAREAS FLUJO DE DATOS Y LA RELACIONAMOS CON LA TAREA EJECUTAR SQL
ingenierosistemasjfsc1983@gmail.com
12
Ingresamos al origen OLE DB para poder realizar la conexin de la base de datos ORIGEN es
decir ETLoad que creamos en SQL.
ELEGIMOS NUEVA
ingenierosistemasjfsc1983@gmail.com
13
LUEGO DE FORMA
CONFIGURAMOS
PREDETERMINADA
APARECE
SELCCIONADO
LA
CONEXIN
ingenierosistemasjfsc1983@gmail.com
QUE
14
ESCOGEMOS LA TABLA DE CUAL SE VAN A EXTRAER LOS REGISTROS EN ESTE CASO LA TABLA
CLIENTE - Modo de Acceso a datos: Seleccionamos Comando SQL GENERAR CONSULTA
ingenierosistemasjfsc1983@gmail.com
15
ingenierosistemasjfsc1983@gmail.com
16
CORROBORAMOS LOS REGISTROS PARA VER QUE EL NOMBRE Y APELLIDO ESTEN UNIDOS.
ingenierosistemasjfsc1983@gmail.com
17
En la opcin asignaciones verificamos si la tabla origen CLIENTE est relacionada con la tabla
destino DimCliente - PARA FINALIZAR ACEPTAR
ingenierosistemasjfsc1983@gmail.com
18
ingenierosistemasjfsc1983@gmail.com
19
ingenierosistemasjfsc1983@gmail.com
20
UNA VEZ SELCCIONADO PROCEDEMOS A UNIR EL APELLIDO Y NOMBRE DEL EMPLEADO COMO EL
CODIGO QUE SE VISULIZA EN LA CONSULTA.
ingenierosistemasjfsc1983@gmail.com
21
VISTA PREVIA
ingenierosistemasjfsc1983@gmail.com
22
ingenierosistemasjfsc1983@gmail.com
23
ingenierosistemasjfsc1983@gmail.com
24
ingenierosistemasjfsc1983@gmail.com
25
LA CONSULTA PROCESADA
VISTA PREVIA
ingenierosistemasjfsc1983@gmail.com
26
ingenierosistemasjfsc1983@gmail.com
27
ingenierosistemasjfsc1983@gmail.com
28
ingenierosistemasjfsc1983@gmail.com
29
LA CONSULTA PROCESADA
ingenierosistemasjfsc1983@gmail.com
30
VISTA PREVIA
ingenierosistemasjfsc1983@gmail.com
31
En la opcin asignaciones verificamos si la tabla origen UBIGEO est relacionada con la tabla
destino DimUbigeo PARA FINALIZAR ACEPTAR
ingenierosistemasjfsc1983@gmail.com
32
ingenierosistemasjfsc1983@gmail.com
33
CONSULTA SQL.
SELECTDISTINCT
YEAR(FechaPedido)* 10000 +MONTH(FechaPedido)* 100 +DAY(FechaPedido)ASCodigoFecha,
FechaPedido,YEAR(FechaPedido)ASAo,
DATEPART(QUARTER,FechaPedido)ASTrimestre,
MONTH(FechaPedido)ASMes,dbo.fn_mes(MONTH(FechaPedido))ASNomMes,
DAY(FechaPedido)ASDia,
DATEPART(WEEKDAY,FechaPedido)ASDiaSemana,
dbo.fn_diaSem(DATEPART(WEEKDAY,FechaPedido))ASNomDiaSemana
FROMdbo.Orden
CONSULTA PROCESADA
ingenierosistemasjfsc1983@gmail.com
34
En la opcin asignaciones verificamos si la tabla origen TIEMPO est relacionada con la tabla
destino DimTiempo PARA FINALIZAR ACEPTAR
ingenierosistemasjfsc1983@gmail.com
35
RESULTADO FINAL
ingenierosistemasjfsc1983@gmail.com
36
ingenierosistemasjfsc1983@gmail.com
37
ingenierosistemasjfsc1983@gmail.com
38
ingenierosistemasjfsc1983@gmail.com
39
ingenierosistemasjfsc1983@gmail.com
40
ingenierosistemasjfsc1983@gmail.com
41
ingenierosistemasjfsc1983@gmail.com
42