SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
http://julycastiblanco.blogspot.com/

Taller de mezcla de Tablas
SQL SERVER 2012 (APLICA TAMBIÉN PARA SS2008/R2)
Autor: Julián Castiblanco Palacios
Email: julian_castiblancop@hotmail.com
blog: http://julycastiblanco.blogspot.com/

Last updated:

2/20/2014

1

1.0.0

Page

Demo version:
http://julycastiblanco.blogspot.com/
CONTENIDO
INTRODUCCIÓN .......................................................................................................................................... 3
PUNTOS CLAVES .................................................................................................................................... 3
requisitos tecnológicos .............................................................................................................................. 3
Tiempo estimado del taller ........................................................................................................................ 4
CONFIGURACIÓN Y PREREQUISITOS ..................................................................................................... 4
SOLUCIONE EL SIGUIENTE TALLER PASO A PASO ............................................................................. 6
CONTENIDO #1 – Creación de una solución en SQL Server Management Studio ................................ 6
CONTENIDO #2a – JOINS ..................................................................................................................... 10
CONTENIDO #2B – JOINS..................................................................................................................... 14
CONTENIDO #3 – SUBCONSULTAS Y CTE ........................................................................................ 16

Page

2

contenido #4 – APPLY ............................................................................................................................ 18
http://julycastiblanco.blogspot.com/

INTRODUCCIÓN
Este taller tiene como finalidad evaluar los conocimientos técnicos en la implementación de consultas que realizan mezclas de dos o más tablas, adicionalmente
pretende evaluar característicias adicionales como las subconsultas, el comando EXISTS, las expresiones comunes de tabla y las funciones de tipo tabla entre
otros.
Cualquier duda con la resolución de los ejercicios y/o aclaración de los conceptos no dude en contactarme a la cuenta de correo
julian_castiblancop@hotmail.com.

PUNTOS CLAVES
1.

Los conceptos a evaluar en este taller son: CROSS JOIN, INNER JOIN, OUTER JOIN, SUBCONSULTAS, Tablas derivadas, CTE (expresiones comunes de
tablas), APPLY.

2.

Toda la teoría de este taller puede ser encontrada en el siguiente material disponible en la red:
a.

http://www.slideshare.net/juliancastiblanco/introduccin-a-joins-cte-apply-y-subconsultas

b.

http://www.amazon.com/Training-Kit-Exam-70-461-Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1359206206&sr=81&keywords=querying+microsoft+sql+server+2012+training+kit+exam+70-461

c.

http://www.microsoftvirtualacademy.com/training-courses/querying-microsoft-sql-server-2012-databases-jump-start#?fbid=XW_QVoNzp3g

REQUISITOS TECNOLÓGICOS

Este taller usa los siguientes productos y tecnologías:
Microsoft SQL Server 2012 SP1 (evaluation, developer, express edition):
Database Engine

b.

SQL Server Management Studio (Full or Express)

3

a.

Page

1.
http://julycastiblanco.blogspot.com/

TIEMPO ESTIMADO DEL TALLER


Taller esta diseñado para un tiempo promedio entre 45 y 60 minutos.

CONFIGURACIÓN Y PREREQUISITOS
REQUERIMIENTOS DE SISTEMA


Microsoft SQL Server 2012 SP1:
◦

Database Engine

◦

SQL Server Management Studio

Si no cuenta aún con una instancia de SQL Server, puede validar el paso a paso de como realizar la instalación en la siguiente dirección:
http://julycastiblanco.blogspot.com/2012/03/instalacion-de-sql-server-2012-sobre.html
Posibles errores en la instalación
http://julycastiblanco.blogspot.com/2012/02/this-sql-server-setup-media-does-not.html



AdventureWorks Sample Databases for SQL Server 2012:
◦

AdventureWorksDW20012

◦

AdventureWorks

http://msftdbprodsamples.codeplex.com/releases/view/55330

Page



4

Si no cuenta aún con las bases de datos de pruebas, puede descargarlas de la siguiente url
http://julycastiblanco.blogspot.com/

PREPARACIÓN
1.

Asegúrese de que la configuración fue correcta.

2.

Inicie SQL Server Management Studio con privilegios de administrador.

Page

5

FIGURE 1. PRIVILEGIOS DE ADMINISTRADOR EN WINDOWS 8.1
http://julycastiblanco.blogspot.com/

SOLUCIONE EL SIGUIENTE TALLER PASO A PASO
El siguiente taller está compuesto por los siguientes contenidos:
1.

Creación de una solución en SQL Server Management Studio

2.

Aplicación de Consultas tipo CROSS, JOIN, OUTER

3.

Aplicación de subconsultas, CTE y tablas derivadas

4.

Aplicación de commando APPLY

CONTENIDO #1 – CREACIÓN DE UNA SOLUCIÓN EN SQL SERVER MANAGEMENT STUDIO
Script



En el campo Server name, ingrese el
nombre de su servidor respectivo por
defecto el nombre de su máquina



En el campo Autentication, deje el
nombre de su usuario de windows, si
realizó la instalación con este usuario,
podrá ingresar a la instancia.

6

1. Ingrese a SQL Server
Management Studio.

Screenshot

Page

Action
http://julycastiblanco.blogspot.com/

En el menu “file” en la opción
“new” seleccione la primera
opción “project”. Para crear un
nuevo proyecto de base de
datos.

En
el campo name
escriba
“Join_Apply_CTE solutions” deje la
ruta por defecto y habilite el check
para crear una carpeta nueva para la
solución



En la parte derecha de la ventana
aparecerá una nueva ventana en la

3. En el asistente para creación
de
nuevos
proyectos
Seleccione la opción SQL
Server Scripts

7



Page

2.
http://julycastiblanco.blogspot.com/
cual podrá visualizar los componentes
de una solución de SQL Server script.

5. Oprima clic derecho sobre la
carpeta
denominada
“connections” para agregar
una nueva conexión a la
solución.

Nuevamente se abre la ventana de
autenticación a un servidor, diligencie
los datos del servidor donde se
encuentra la base de datos de
AdventureWorks

8



Page

4. En el menu “view” seleccione
la opción “Solution Explorer”.
Para poder visualizar los
componentes de la solución.
http://julycastiblanco.blogspot.com/

6. Note que una nueva conexión
ha sido creada en el proyecto.



Renombre
la
consulta
a
“001_Joins.sql”, oprimiento botón
derecho y la opción “rename”

7. Ahora, seleccione “queries” y
agregue una nueva consulta

del

9

cambios

Page

8. Guarde los
proyecto.
http://julycastiblanco.blogspot.com/

CONTENIDO #2A – JOINS
Action

Script

1. Interacción
inicial
con
AdventureWorks2012. La primera
tabla con que se va a trabajar
pertenece al esquema de las ventas y
posee información de la cabecera de
las facturas de la compañía que se
dedica



select * from
[Sales].[CurrencyRate]

select * from [Sales].Currency

10

3. La tercera tabla con que trabajaremos
es la tabla se encuentra el nombre de
todas las monedas, hay una relación
entre Currency y CurrencyRate

Use AdventureWorks2012
Go
select * from
[Sales].[SalesOrderHeader]

Page

2. La segunda tabla con la que
trabajaremos será currencyRate en al
cual se encuentra las tasas de cambio
entre dólar y varias monedas del
mundo, esta tasa de cambio aplica
para cada día, por lo cual siempre que
seleccione un código de tasa, deberá
también seleccionar la fecha para la
cual necesita la información.

Screenshot
http://julycastiblanco.blogspot.com/

5. Ahora bien, utilizaremos una vista que
contiene la información detallada de
los clientes como el nombre, teléfono,
email. Etc. Analice cada una de las
tablas e identifique cuales campos
son llave y permitirán mezcalr la
información de las tablas.

select * from
[Sales].[vIndividualCustomer]

6. Ahora Cree un diagrama que le
permitirá visualizar gráficamente la
relación entre las tablas y las llaves de
relación entre las mismas.

Para esto en la carpeta “database
diagrams” dentro de la base de datos
adventure Works, oprima clic derecho y
seleccione la opción “New database
diagram”.

11

select * from SALES.Customer

Page

4. La cuarta tabla es “Customer” en la
cual se relaciona el id del cliente, la
ubicación en que realizó la compra, el
id de la tienda. Note que existe un
campo PersonID, que es el campo
llave para relacionarse con la vista
que contiene la información básica de
los clientes.
http://julycastiblanco.blogspot.com/

Si obtiene un mensaje de error, es porque
la base de datos no tiene un dueño
asociado, para lo cual basta con
configurar al usuario SA como dueño de la
base de datos en las propiedades de la
misma.
En la columna derecha
encontrará el lugar exacto donde debe
configurarlo.

7. selecciones las siguientes tablas al
diagrama: Como puede notarlo, las vistas
no aparecen listadas, por lo cual no
pueden ser incluidas en el diagrama.

SalesOrderHeader(sales)
CurrencyRate(sales)
Currency(sales)
Customer(Sales)
vIndividualCustomer(Sales)

Page

12

8. Guarde el diagrama con el nombre
“diag_Ventas por tipo de moneda”
http://julycastiblanco.blogspot.com/

9. ahora bien, suponga que ha sido
contratado como desarrollador de sql
server en adventure Works para
desarrollar un informe de ventas, que
entregue la siguiente información:
Se necesita un reporte que en una
columna coloque el nombre completo del
cliente, caso que no esté registrado, debe
colocar un valor de “No name registred”
debe traer la ciudad del cliente, la
dirección, el número telefónico de
contacto, que muestre el valor de la
compra en libras inglesas a la tasa
promedio del día de compra, igual mente
para el valor de los impuestos y el valor
total de la venta, por último el campo con
el nombre completo de la moneda.

select SOH.SalesOrderNumber,SOH.OrderDate

,????((PE.Title+' '+PE.FirstName+'
'+PE.LastName),'No name registred') AS
NAME

,PE.City,PE.AddressLine1

,PE.PhoneNumber,( ????*SOH.SubTotal) AS
SubtotalEnlibras

,(CR.AverageRate*????) AS
ImpuestosEnLibras

,( ????*SOH.TotalDue) AS
ValorTotalEnLibras

El reporte debe mostrar dicha información
solo para las órdenes que fueron creadas
en el año 2008 y en libras inglesas.

,c.Name as moneda

from [Sales].[SalesOrderHeader] as ????

???? [Sales].[CurrencyRate] AS CR

???? SOH.CurrencyRateID=CR.CurrencyRateID

???? Sales.Currency AS C

13

????SOH.OrderDate=CR.CurrencyRateDate

Page

Modifique en el script adjunto los campos
???? por la sentencia apropiada para
lograr su cometido.
http://julycastiblanco.blogspot.com/

????CR.ToCurrencyCode=C.CurrencyCode

???? SALES.Customer CU

???? CU.CustomerID=SOH.CustomerID

???? [Sales].[vIndividualCustomer] AS PE

ON CU.PersonID=PE.BusinessEntityID

WHERE C.CurrencyCode=????

AND ???? = 2008

CONTENIDO #2B – JOINS

1. Basado en las tablas anteriormente
trabajadas supongamos este nuevo
caso.

select
ISNULL((isnull(PE.FirstName,'')+'
'+isnull(pe.MiddleName,'')+'
'+isnull(pe.LastName,'')),'No name
registred') AS NAME

Usted ha sido contratado como
desarrollador de sql server 2012 para
adventure Works, el departamento de
mercadeo premiará a sus clientes que
hicieron compras en el año 2008, sin
embargo solo recibirán premio

,PE.City
,PE.AddressLine1

Screenshot

14

Script

Page

Action
http://julycastiblanco.blogspot.com/

,PE.PhoneNumber,OrderDate
, ?????????????? as Premio
from SALES.Customer CU
???? [Sales].[vIndividualCustomer]

AS PE
???? CU.PersonID=PE.BusinessEntityID
????

[Sales].[SalesOrderHeader] as

SOH
???? CU.CustomerID=SOH.CustomerID

WHERE ????

15

ORDER BY OrderDate

Page

especial los que hicieron compras
explícitamente el día 12 de febrero.
Por lo cual le solicitan un reporte en el
cual entregue una lista de todos los
clientes que compraron en el 2008
con nombre, teléfono, ciudad y
dirección y en una columna adicional
llamada “premio” la palabra “NO
PARTICIPA” si la fecha fue diferente
al 12 de febrero y “GANA PREMIO si
fue durante este día. Modifique los
espacios ???? en el siguiente script
para que se cumpla la condición.
http://julycastiblanco.blogspot.com/

CONTENIDO #3 – SUBCONSULTAS Y CTE

1. Ahora vamos a conocer un Nuevo grupo
de tablas que existen en el esquema de
recursos humanos. La tabla “Employee”
en una misma tabla contiene todo el
organigrama de la compañía, el campo
bussinesEntityID
permite
unir
la
información con la tabla “person” la cual
como hemos visto tiene el nombre y otros
datos de la entidad persona.

SELECT * FROM
[HumanResources].[Employee]

2. La tabla [EmployeeDepartmentHistory],
contiene la historia de cargos que han
tenido los empleados dentro de la
institución es decir, suponga que ud.
Ingresó a la compañía como mensajero,
luego ascendió a analista de operaciones
y al terminar sus estudios pasó al
departamento de tecnología para ser el
arquitecto de bases de datos SQL Server.
Note que cuando la columna EndDate es
nula, quiere decir que es el cargo actual
de la persona

SELECT * FROM
[HumanResources].[EmployeeDepartmen
tHistory]

3. La tabla de “departament" contiene el
nombre de los departamentos de la
compañía, como podrá imaginar estas 4
tablas se relacionan entre sí; con lo cual

SELECT * FROM
[HumanResources].[Department]

Screenshot

16

Script

Page

Action
http://julycastiblanco.blogspot.com/
está preparado para resolver el siguiente
ejercicio.
4. Recursos humanos lo ha requerido para
que entregue el BusinessentityID de los
siguientes
empleados
“William
Vong”,”Laura Norman”,”Sheela Word”
quienes serán promovidos de cargo.
Recuerde que en la información de
nombres se encuentra en la tabla Person,
sin embargo una persona puede estar
más de una vez, una con el rol de
empleado otra con el rol de cliente y/o
proveedor. Por lo cual verique que ha
seleccionado el valor correcto para tipo de
persona.

select businessentityid from ????
where (????)
???? ('William Vong','Laura

Norman','Sheela Word') and ????='EM'

Page

17

5. Una vez que logró resolver la
incertidumbre, recibe un nuevo llamado
por parte de recursos humanos donde le
pide que además de la información
enviada, precisan conocer el Grupo del
departamento,
el
nombre
del
departamento, el cargo actual y el nombre
de estos empleados.
Realice esta
consulta teniendo como base la
subconsulta generada en el punto 4.
http://julycastiblanco.blogspot.com/

6.
Realice
la
misma
consulta
reemplazando la subconsulta por una
CTE, a continuación un script guía para
lograrlo

WITH EMPLOYESS
AS(???)

(businessentityid)

SELECT
DP.GroupName,DP.Name,EM.JobTitle,(F
irstName+' '+LastName) AS NOMBRE
FROM ???? INNER JOIN EMPLOYESS
ON EM.BusinessEntityID =
EMPLOYESS.businessentityid
WHERE EndDate IS NULL

CONTENIDO #4 – APPLY
Action

Script

1. Cree una nueva base de datos
llamada “DEMOAPPLY”.

Screenshot

CREATE DATABASE DEMOAPPLY
GO



Page

GO

18

USE DEMOAPPLY
http://julycastiblanco.blogspot.com/

--Create Empleados table and insert values.
CREATE TABLE Empleados
(
empid
,mgrid

int
int

NOT NULL
NULL

,empname varchar(25) NOT NULL
,salary

money

NOT NULL

CONSTRAINT PK_Empleados PRIMARY KEY(empid)
);
GO
, $10000.00);

INSERT INTO Empleados VALUES(2 , 1

, 'Andrew'

, $5000.00);

INSERT INTO Empleados VALUES(3 , 1

, 'Janet'

, $5000.00);

INSERT INTO Empleados VALUES(4 , 1

, 'Margaret', $5000.00);

INSERT INTO Empleados VALUES(5 , 2

, 'Steven'

INSERT INTO Empleados VALUES(6 , 2

, 'Michael' , $2500.00);

, $2500.00);

19

INSERT INTO Empleados VALUES(1 , NULL, 'Nancy'

Page

2. Cree una nueva table denominada
“Empleados” e ingrese los siguientes
registros.
http://julycastiblanco.blogspot.com/

INSERT INTO Empleados VALUES(7 , 3

, 'Robert'

, $2500.00);

INSERT INTO Empleados VALUES(8 , 3

, 'Laura'

, $2500.00);

INSERT INTO Empleados VALUES(9 , 3

, 'Ann'

, $2500.00);

INSERT INTO Empleados VALUES(10, 4

, 'Ina'

, $2500.00);

INSERT INTO Empleados VALUES(11, 7

, 'David'

, $2000.00);

INSERT INTO Empleados VALUES(12, 7

, 'Ron'

, $2000.00);

INSERT INTO Empleados VALUES(13, 7

, 'Dan'

, $2000.00);

INSERT INTO Empleados VALUES(14, 11

, 'James'

, $1500.00);

GO

CREATE TABLE Departamentos
(

deptid
,deptname

INT NOT NULL PRIMARY KEY
VARCHAR(25) NOT NULL

GO

20

,deptmgrid INT NULL REFERENCES Empleados);

Page

3. Cree la taba de “departamentos” que
equivale a las secciones de la
compañía
http://julycastiblanco.blogspot.com/

INSERT INTO Departamentos VALUES(1, 'HR',

2);

INSERT INTO Departamentos VALUES(2, 'Marketing',

7);

INSERT INTO Departamentos VALUES(3, 'Finance',

8);

INSERT INTO Departamentos VALUES(4, 'R&D',

9);

INSERT INTO Departamentos VALUES(5, 'Training',

4);

INSERT INTO Departamentos VALUES(6, 'Gardening', NULL);
CREATE FUNCTION dbo.fn_getsubtree(@empid AS INT)
RETURNS @TREE TABLE
(
empid

INT NOT NULL

,empname VARCHAR(25) NOT NULL

,lvl
)
AS

INT NULL
INT NOT NULL

21

,mgrid

Page

4. A continuación, cree una función de
tipo tabla que se encargará de
retornar a cada uno de los empleados
del
departamento
y
sus
correspondientes subalternos. Note
que esta función contiene también un
CTE que es utilizado para garantizar
las consultas recursivas para tomar
todos los miembros del departamento
y sus subalternos.
http://julycastiblanco.blogspot.com/

BEGIN
WITH Empleados_Subtree(empid, empname, mgrid, lvl)
AS
(
-- Anchor Member (AM)
SELECT empid, empname, mgrid, 0
FROM Empleados
WHERE empid = @empid

UNION all

-- Recursive Member (RM)

JOIN Empleados_Subtree AS es

Page

FROM Empleados AS e

22

SELECT e.empid, e.empname, e.mgrid, es.lvl+1
http://julycastiblanco.blogspot.com/

ON e.mgrid = es.empid
)
INSERT INTO @TREE
SELECT * FROM Empleados_Subtree;

RETURN
END
GO
SELECT D.deptid, D.deptname, D.deptmgrid
,ST.empid, ST.empname, ST.mgrid
FROM Departamentos AS D

23

CROSS APPLY fn_getsubtree(D.deptmgrid) AS ST;

Page

5. una vez ha creado la función, ejecute la
siguiente consulta, como podrá ver, cada
uno de los registros devueltos por la tabla
Departamentos, va a ser un parámetro
para ejecutar la función de tipo tabla que a
su vez devolverá una tabla de empleados
que coinciden en el departamento.

Más contenido relacionado

La actualidad más candente

89001303 informatica basica
89001303 informatica basica89001303 informatica basica
89001303 informatica basicaangel maita
 
Modulo III Visual Basic 6
Modulo III   Visual Basic 6Modulo III   Visual Basic 6
Modulo III Visual Basic 6Ernesto
 
CORREOS ELECTRONICOS
CORREOS ELECTRONICOSCORREOS ELECTRONICOS
CORREOS ELECTRONICOSgabrielam87
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Computacion 3 cb09302 2013
Computacion 3 cb09302 2013Computacion 3 cb09302 2013
Computacion 3 cb09302 2013Maestros Online
 
Primeros pasos con Joomla, la primera.net Licencia C.C
Primeros pasos con Joomla, la primera.net Licencia C.CPrimeros pasos con Joomla, la primera.net Licencia C.C
Primeros pasos con Joomla, la primera.net Licencia C.CBrox Technology
 
Instrucciones Cuadro de Mandos STADA
Instrucciones Cuadro de Mandos STADAInstrucciones Cuadro de Mandos STADA
Instrucciones Cuadro de Mandos STADAFarmacia Activa
 
manejo de herramientas de office "access"
manejo de herramientas de office "access"manejo de herramientas de office "access"
manejo de herramientas de office "access"Lorisse Calderon
 
manejo de herramientas de office "access"
manejo de herramientas de office "access"manejo de herramientas de office "access"
manejo de herramientas de office "access"Lorisse Calderon
 
ALEX Inventory Manager - User's Manual
ALEX Inventory Manager - User's ManualALEX Inventory Manager - User's Manual
ALEX Inventory Manager - User's ManualJuan Cols
 
L02 windows 7 panel de control 2014-2 panel cotrol
L02 windows 7   panel de control 2014-2 panel cotrolL02 windows 7   panel de control 2014-2 panel cotrol
L02 windows 7 panel de control 2014-2 panel cotrolANGEL-LIMA
 
Manual de usuario anaramsa v1.0
Manual de usuario anaramsa v1.0Manual de usuario anaramsa v1.0
Manual de usuario anaramsa v1.0Erick Andrade
 
Libro de programacion visual basic 6 0
Libro de programacion  visual basic 6 0Libro de programacion  visual basic 6 0
Libro de programacion visual basic 6 0Yalmar Bustillo
 

La actualidad más candente (19)

89001303 informatica basica
89001303 informatica basica89001303 informatica basica
89001303 informatica basica
 
Modulo III Visual Basic 6
Modulo III   Visual Basic 6Modulo III   Visual Basic 6
Modulo III Visual Basic 6
 
CORREOS ELECTRONICOS
CORREOS ELECTRONICOSCORREOS ELECTRONICOS
CORREOS ELECTRONICOS
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
MANUAL DE USUARIO VIRTUALPLANT 2.0
MANUAL DE USUARIO VIRTUALPLANT 2.0MANUAL DE USUARIO VIRTUALPLANT 2.0
MANUAL DE USUARIO VIRTUALPLANT 2.0
 
Computacion 3 cb09302 2013
Computacion 3 cb09302 2013Computacion 3 cb09302 2013
Computacion 3 cb09302 2013
 
Manual instalacion sql_2012_express_sp2
Manual instalacion sql_2012_express_sp2Manual instalacion sql_2012_express_sp2
Manual instalacion sql_2012_express_sp2
 
Tema 3
Tema 3Tema 3
Tema 3
 
Primeros pasos con Joomla, la primera.net Licencia C.C
Primeros pasos con Joomla, la primera.net Licencia C.CPrimeros pasos con Joomla, la primera.net Licencia C.C
Primeros pasos con Joomla, la primera.net Licencia C.C
 
Instrucciones Cuadro de Mandos STADA
Instrucciones Cuadro de Mandos STADAInstrucciones Cuadro de Mandos STADA
Instrucciones Cuadro de Mandos STADA
 
manejo de herramientas de office "access"
manejo de herramientas de office "access"manejo de herramientas de office "access"
manejo de herramientas de office "access"
 
manejo de herramientas de office "access"
manejo de herramientas de office "access"manejo de herramientas de office "access"
manejo de herramientas de office "access"
 
ALEX Inventory Manager - User's Manual
ALEX Inventory Manager - User's ManualALEX Inventory Manager - User's Manual
ALEX Inventory Manager - User's Manual
 
L02 windows 7 panel de control 2014-2 panel cotrol
L02 windows 7   panel de control 2014-2 panel cotrolL02 windows 7   panel de control 2014-2 panel cotrol
L02 windows 7 panel de control 2014-2 panel cotrol
 
Manual de usuario anaramsa v1.0
Manual de usuario anaramsa v1.0Manual de usuario anaramsa v1.0
Manual de usuario anaramsa v1.0
 
pressTutorial de-wordpress
pressTutorial de-wordpresspressTutorial de-wordpress
pressTutorial de-wordpress
 
Excel
ExcelExcel
Excel
 
Practica5
Practica5Practica5
Practica5
 
Libro de programacion visual basic 6 0
Libro de programacion  visual basic 6 0Libro de programacion  visual basic 6 0
Libro de programacion visual basic 6 0
 

Destacado

Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sqlJulian Benavidez
 
Introducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorIntroducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorEduardo Castro
 
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASIntroducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASJulián Castiblanco
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q LOlaya Molina
 
Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)La Positiva Seguros
 
Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2Martink137
 
Fundamentos en el diseño de bases de datos con MS SQL Server 2012
Fundamentos en el diseño de bases de datos con MS SQL Server 2012Fundamentos en el diseño de bases de datos con MS SQL Server 2012
Fundamentos en el diseño de bases de datos con MS SQL Server 2012Joseph Lopez
 

Destacado (20)

Join
JoinJoin
Join
 
Joins
JoinsJoins
Joins
 
Join
JoinJoin
Join
 
Curso SQL - Leccion 7
Curso SQL - Leccion 7  Curso SQL - Leccion 7
Curso SQL - Leccion 7
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
 
Cap 7. oracle SQL fundamentals
Cap 7. oracle SQL fundamentalsCap 7. oracle SQL fundamentals
Cap 7. oracle SQL fundamentals
 
Join sql
Join sqlJoin sql
Join sql
 
Join
JoinJoin
Join
 
Introducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query ProcessorIntroducción Procesador Consultas SQL Server - Query Processor
Introducción Procesador Consultas SQL Server - Query Processor
 
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASIntroducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
 
Tarea dqs en ssis nunca termina
Tarea dqs en ssis nunca terminaTarea dqs en ssis nunca termina
Tarea dqs en ssis nunca termina
 
Taller de sql server no 3
Taller de sql server no 3Taller de sql server no 3
Taller de sql server no 3
 
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
 
Tutorial procedure sqlserver2008.docx
Tutorial procedure sqlserver2008.docxTutorial procedure sqlserver2008.docx
Tutorial procedure sqlserver2008.docx
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
 
Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)
 
Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2
 
Agrupando datos en SQL Server
Agrupando datos en SQL ServerAgrupando datos en SQL Server
Agrupando datos en SQL Server
 
Fundamentos en el diseño de bases de datos con MS SQL Server 2012
Fundamentos en el diseño de bases de datos con MS SQL Server 2012Fundamentos en el diseño de bases de datos con MS SQL Server 2012
Fundamentos en el diseño de bases de datos con MS SQL Server 2012
 

Similar a Taller básico de JOINS, SUBQUERYING, APPLY, CTE

Similar a Taller básico de JOINS, SUBQUERYING, APPLY, CTE (20)

Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 
Conexion mysql
Conexion mysqlConexion mysql
Conexion mysql
 
Cubo
CuboCubo
Cubo
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 
Ejercicio practico sql
Ejercicio practico sqlEjercicio practico sql
Ejercicio practico sql
 
Cubo olap
Cubo olapCubo olap
Cubo olap
 
Tutorial MIneria de datos en sql server
Tutorial  MIneria de datos en sql serverTutorial  MIneria de datos en sql server
Tutorial MIneria de datos en sql server
 
Presentación de Minería de Datos_ Adventure Works
Presentación de Minería de Datos_ Adventure WorksPresentación de Minería de Datos_ Adventure Works
Presentación de Minería de Datos_ Adventure Works
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Tutorial ASP .NET
Tutorial ASP .NETTutorial ASP .NET
Tutorial ASP .NET
 
Manual de xml y caseware idea
Manual de xml y caseware ideaManual de xml y caseware idea
Manual de xml y caseware idea
 
Laboratorio 3
Laboratorio 3Laboratorio 3
Laboratorio 3
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Guía para la creación de cubos de datos
Guía para la creación de cubos de datosGuía para la creación de cubos de datos
Guía para la creación de cubos de datos
 
Proyecto replicacion con sql server
Proyecto replicacion con sql serverProyecto replicacion con sql server
Proyecto replicacion con sql server
 
Programacion2
Programacion2Programacion2
Programacion2
 
Crear y programar un proyecto nuevo
Crear y programar un proyecto nuevoCrear y programar un proyecto nuevo
Crear y programar un proyecto nuevo
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salas
 
Saturación de la base de datos
Saturación de la base de datosSaturación de la base de datos
Saturación de la base de datos
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basic
 

Más de Julián Castiblanco

70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASEJulián Castiblanco
 
Descubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosDescubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosJulián Castiblanco
 
Tech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con julyTech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con julyJulián Castiblanco
 
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4Julián Castiblanco
 
Global Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalakeGlobal Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalakeJulián Castiblanco
 
Lecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnLecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnJulián Castiblanco
 
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
Sql saturday 448   migración de bases de datos sql server hacia azure sqldbSql saturday 448   migración de bases de datos sql server hacia azure sqldb
Sql saturday 448 migración de bases de datos sql server hacia azure sqldbJulián Castiblanco
 
Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Julián Castiblanco
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassJulián Castiblanco
 
Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Julián Castiblanco
 
Database Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerDatabase Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerJulián Castiblanco
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareJulián Castiblanco
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Julián Castiblanco
 
70 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 201270 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 2012Julián Castiblanco
 
Instalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azureInstalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azureJulián Castiblanco
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 
Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Julián Castiblanco
 
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionCreación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionJulián Castiblanco
 

Más de Julián Castiblanco (20)

70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE
 
Descubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosDescubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datos
 
Tech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con julyTech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con july
 
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
 
Global Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalakeGlobal Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalake
 
Lecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnLecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOn
 
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
Sql saturday 448   migración de bases de datos sql server hacia azure sqldbSql saturday 448   migración de bases de datos sql server hacia azure sqldb
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
 
Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
 
Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2
 
Database Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerDatabase Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL Server
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshare
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3
 
70 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 201270 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 2012
 
Instalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azureInstalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azure
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2
 
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionCreación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 

Último

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Taller básico de JOINS, SUBQUERYING, APPLY, CTE

  • 1. http://julycastiblanco.blogspot.com/ Taller de mezcla de Tablas SQL SERVER 2012 (APLICA TAMBIÉN PARA SS2008/R2) Autor: Julián Castiblanco Palacios Email: julian_castiblancop@hotmail.com blog: http://julycastiblanco.blogspot.com/ Last updated: 2/20/2014 1 1.0.0 Page Demo version:
  • 2. http://julycastiblanco.blogspot.com/ CONTENIDO INTRODUCCIÓN .......................................................................................................................................... 3 PUNTOS CLAVES .................................................................................................................................... 3 requisitos tecnológicos .............................................................................................................................. 3 Tiempo estimado del taller ........................................................................................................................ 4 CONFIGURACIÓN Y PREREQUISITOS ..................................................................................................... 4 SOLUCIONE EL SIGUIENTE TALLER PASO A PASO ............................................................................. 6 CONTENIDO #1 – Creación de una solución en SQL Server Management Studio ................................ 6 CONTENIDO #2a – JOINS ..................................................................................................................... 10 CONTENIDO #2B – JOINS..................................................................................................................... 14 CONTENIDO #3 – SUBCONSULTAS Y CTE ........................................................................................ 16 Page 2 contenido #4 – APPLY ............................................................................................................................ 18
  • 3. http://julycastiblanco.blogspot.com/ INTRODUCCIÓN Este taller tiene como finalidad evaluar los conocimientos técnicos en la implementación de consultas que realizan mezclas de dos o más tablas, adicionalmente pretende evaluar característicias adicionales como las subconsultas, el comando EXISTS, las expresiones comunes de tabla y las funciones de tipo tabla entre otros. Cualquier duda con la resolución de los ejercicios y/o aclaración de los conceptos no dude en contactarme a la cuenta de correo julian_castiblancop@hotmail.com. PUNTOS CLAVES 1. Los conceptos a evaluar en este taller son: CROSS JOIN, INNER JOIN, OUTER JOIN, SUBCONSULTAS, Tablas derivadas, CTE (expresiones comunes de tablas), APPLY. 2. Toda la teoría de este taller puede ser encontrada en el siguiente material disponible en la red: a. http://www.slideshare.net/juliancastiblanco/introduccin-a-joins-cte-apply-y-subconsultas b. http://www.amazon.com/Training-Kit-Exam-70-461-Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1359206206&sr=81&keywords=querying+microsoft+sql+server+2012+training+kit+exam+70-461 c. http://www.microsoftvirtualacademy.com/training-courses/querying-microsoft-sql-server-2012-databases-jump-start#?fbid=XW_QVoNzp3g REQUISITOS TECNOLÓGICOS Este taller usa los siguientes productos y tecnologías: Microsoft SQL Server 2012 SP1 (evaluation, developer, express edition): Database Engine b. SQL Server Management Studio (Full or Express) 3 a. Page 1.
  • 4. http://julycastiblanco.blogspot.com/ TIEMPO ESTIMADO DEL TALLER  Taller esta diseñado para un tiempo promedio entre 45 y 60 minutos. CONFIGURACIÓN Y PREREQUISITOS REQUERIMIENTOS DE SISTEMA  Microsoft SQL Server 2012 SP1: ◦ Database Engine ◦ SQL Server Management Studio Si no cuenta aún con una instancia de SQL Server, puede validar el paso a paso de como realizar la instalación en la siguiente dirección: http://julycastiblanco.blogspot.com/2012/03/instalacion-de-sql-server-2012-sobre.html Posibles errores en la instalación http://julycastiblanco.blogspot.com/2012/02/this-sql-server-setup-media-does-not.html  AdventureWorks Sample Databases for SQL Server 2012: ◦ AdventureWorksDW20012 ◦ AdventureWorks http://msftdbprodsamples.codeplex.com/releases/view/55330 Page  4 Si no cuenta aún con las bases de datos de pruebas, puede descargarlas de la siguiente url
  • 5. http://julycastiblanco.blogspot.com/ PREPARACIÓN 1. Asegúrese de que la configuración fue correcta. 2. Inicie SQL Server Management Studio con privilegios de administrador. Page 5 FIGURE 1. PRIVILEGIOS DE ADMINISTRADOR EN WINDOWS 8.1
  • 6. http://julycastiblanco.blogspot.com/ SOLUCIONE EL SIGUIENTE TALLER PASO A PASO El siguiente taller está compuesto por los siguientes contenidos: 1. Creación de una solución en SQL Server Management Studio 2. Aplicación de Consultas tipo CROSS, JOIN, OUTER 3. Aplicación de subconsultas, CTE y tablas derivadas 4. Aplicación de commando APPLY CONTENIDO #1 – CREACIÓN DE UNA SOLUCIÓN EN SQL SERVER MANAGEMENT STUDIO Script  En el campo Server name, ingrese el nombre de su servidor respectivo por defecto el nombre de su máquina  En el campo Autentication, deje el nombre de su usuario de windows, si realizó la instalación con este usuario, podrá ingresar a la instancia. 6 1. Ingrese a SQL Server Management Studio. Screenshot Page Action
  • 7. http://julycastiblanco.blogspot.com/ En el menu “file” en la opción “new” seleccione la primera opción “project”. Para crear un nuevo proyecto de base de datos. En el campo name escriba “Join_Apply_CTE solutions” deje la ruta por defecto y habilite el check para crear una carpeta nueva para la solución  En la parte derecha de la ventana aparecerá una nueva ventana en la 3. En el asistente para creación de nuevos proyectos Seleccione la opción SQL Server Scripts 7  Page 2.
  • 8. http://julycastiblanco.blogspot.com/ cual podrá visualizar los componentes de una solución de SQL Server script. 5. Oprima clic derecho sobre la carpeta denominada “connections” para agregar una nueva conexión a la solución. Nuevamente se abre la ventana de autenticación a un servidor, diligencie los datos del servidor donde se encuentra la base de datos de AdventureWorks 8  Page 4. En el menu “view” seleccione la opción “Solution Explorer”. Para poder visualizar los componentes de la solución.
  • 9. http://julycastiblanco.blogspot.com/ 6. Note que una nueva conexión ha sido creada en el proyecto.  Renombre la consulta a “001_Joins.sql”, oprimiento botón derecho y la opción “rename” 7. Ahora, seleccione “queries” y agregue una nueva consulta del 9 cambios Page 8. Guarde los proyecto.
  • 10. http://julycastiblanco.blogspot.com/ CONTENIDO #2A – JOINS Action Script 1. Interacción inicial con AdventureWorks2012. La primera tabla con que se va a trabajar pertenece al esquema de las ventas y posee información de la cabecera de las facturas de la compañía que se dedica  select * from [Sales].[CurrencyRate] select * from [Sales].Currency 10 3. La tercera tabla con que trabajaremos es la tabla se encuentra el nombre de todas las monedas, hay una relación entre Currency y CurrencyRate Use AdventureWorks2012 Go select * from [Sales].[SalesOrderHeader] Page 2. La segunda tabla con la que trabajaremos será currencyRate en al cual se encuentra las tasas de cambio entre dólar y varias monedas del mundo, esta tasa de cambio aplica para cada día, por lo cual siempre que seleccione un código de tasa, deberá también seleccionar la fecha para la cual necesita la información. Screenshot
  • 11. http://julycastiblanco.blogspot.com/ 5. Ahora bien, utilizaremos una vista que contiene la información detallada de los clientes como el nombre, teléfono, email. Etc. Analice cada una de las tablas e identifique cuales campos son llave y permitirán mezcalr la información de las tablas. select * from [Sales].[vIndividualCustomer] 6. Ahora Cree un diagrama que le permitirá visualizar gráficamente la relación entre las tablas y las llaves de relación entre las mismas. Para esto en la carpeta “database diagrams” dentro de la base de datos adventure Works, oprima clic derecho y seleccione la opción “New database diagram”. 11 select * from SALES.Customer Page 4. La cuarta tabla es “Customer” en la cual se relaciona el id del cliente, la ubicación en que realizó la compra, el id de la tienda. Note que existe un campo PersonID, que es el campo llave para relacionarse con la vista que contiene la información básica de los clientes.
  • 12. http://julycastiblanco.blogspot.com/ Si obtiene un mensaje de error, es porque la base de datos no tiene un dueño asociado, para lo cual basta con configurar al usuario SA como dueño de la base de datos en las propiedades de la misma. En la columna derecha encontrará el lugar exacto donde debe configurarlo. 7. selecciones las siguientes tablas al diagrama: Como puede notarlo, las vistas no aparecen listadas, por lo cual no pueden ser incluidas en el diagrama. SalesOrderHeader(sales) CurrencyRate(sales) Currency(sales) Customer(Sales) vIndividualCustomer(Sales) Page 12 8. Guarde el diagrama con el nombre “diag_Ventas por tipo de moneda”
  • 13. http://julycastiblanco.blogspot.com/ 9. ahora bien, suponga que ha sido contratado como desarrollador de sql server en adventure Works para desarrollar un informe de ventas, que entregue la siguiente información: Se necesita un reporte que en una columna coloque el nombre completo del cliente, caso que no esté registrado, debe colocar un valor de “No name registred” debe traer la ciudad del cliente, la dirección, el número telefónico de contacto, que muestre el valor de la compra en libras inglesas a la tasa promedio del día de compra, igual mente para el valor de los impuestos y el valor total de la venta, por último el campo con el nombre completo de la moneda. select SOH.SalesOrderNumber,SOH.OrderDate ,????((PE.Title+' '+PE.FirstName+' '+PE.LastName),'No name registred') AS NAME ,PE.City,PE.AddressLine1 ,PE.PhoneNumber,( ????*SOH.SubTotal) AS SubtotalEnlibras ,(CR.AverageRate*????) AS ImpuestosEnLibras ,( ????*SOH.TotalDue) AS ValorTotalEnLibras El reporte debe mostrar dicha información solo para las órdenes que fueron creadas en el año 2008 y en libras inglesas. ,c.Name as moneda from [Sales].[SalesOrderHeader] as ???? ???? [Sales].[CurrencyRate] AS CR ???? SOH.CurrencyRateID=CR.CurrencyRateID ???? Sales.Currency AS C 13 ????SOH.OrderDate=CR.CurrencyRateDate Page Modifique en el script adjunto los campos ???? por la sentencia apropiada para lograr su cometido.
  • 14. http://julycastiblanco.blogspot.com/ ????CR.ToCurrencyCode=C.CurrencyCode ???? SALES.Customer CU ???? CU.CustomerID=SOH.CustomerID ???? [Sales].[vIndividualCustomer] AS PE ON CU.PersonID=PE.BusinessEntityID WHERE C.CurrencyCode=???? AND ???? = 2008 CONTENIDO #2B – JOINS 1. Basado en las tablas anteriormente trabajadas supongamos este nuevo caso. select ISNULL((isnull(PE.FirstName,'')+' '+isnull(pe.MiddleName,'')+' '+isnull(pe.LastName,'')),'No name registred') AS NAME Usted ha sido contratado como desarrollador de sql server 2012 para adventure Works, el departamento de mercadeo premiará a sus clientes que hicieron compras en el año 2008, sin embargo solo recibirán premio ,PE.City ,PE.AddressLine1 Screenshot 14 Script Page Action
  • 15. http://julycastiblanco.blogspot.com/ ,PE.PhoneNumber,OrderDate , ?????????????? as Premio from SALES.Customer CU ???? [Sales].[vIndividualCustomer] AS PE ???? CU.PersonID=PE.BusinessEntityID ???? [Sales].[SalesOrderHeader] as SOH ???? CU.CustomerID=SOH.CustomerID WHERE ???? 15 ORDER BY OrderDate Page especial los que hicieron compras explícitamente el día 12 de febrero. Por lo cual le solicitan un reporte en el cual entregue una lista de todos los clientes que compraron en el 2008 con nombre, teléfono, ciudad y dirección y en una columna adicional llamada “premio” la palabra “NO PARTICIPA” si la fecha fue diferente al 12 de febrero y “GANA PREMIO si fue durante este día. Modifique los espacios ???? en el siguiente script para que se cumpla la condición.
  • 16. http://julycastiblanco.blogspot.com/ CONTENIDO #3 – SUBCONSULTAS Y CTE 1. Ahora vamos a conocer un Nuevo grupo de tablas que existen en el esquema de recursos humanos. La tabla “Employee” en una misma tabla contiene todo el organigrama de la compañía, el campo bussinesEntityID permite unir la información con la tabla “person” la cual como hemos visto tiene el nombre y otros datos de la entidad persona. SELECT * FROM [HumanResources].[Employee] 2. La tabla [EmployeeDepartmentHistory], contiene la historia de cargos que han tenido los empleados dentro de la institución es decir, suponga que ud. Ingresó a la compañía como mensajero, luego ascendió a analista de operaciones y al terminar sus estudios pasó al departamento de tecnología para ser el arquitecto de bases de datos SQL Server. Note que cuando la columna EndDate es nula, quiere decir que es el cargo actual de la persona SELECT * FROM [HumanResources].[EmployeeDepartmen tHistory] 3. La tabla de “departament" contiene el nombre de los departamentos de la compañía, como podrá imaginar estas 4 tablas se relacionan entre sí; con lo cual SELECT * FROM [HumanResources].[Department] Screenshot 16 Script Page Action
  • 17. http://julycastiblanco.blogspot.com/ está preparado para resolver el siguiente ejercicio. 4. Recursos humanos lo ha requerido para que entregue el BusinessentityID de los siguientes empleados “William Vong”,”Laura Norman”,”Sheela Word” quienes serán promovidos de cargo. Recuerde que en la información de nombres se encuentra en la tabla Person, sin embargo una persona puede estar más de una vez, una con el rol de empleado otra con el rol de cliente y/o proveedor. Por lo cual verique que ha seleccionado el valor correcto para tipo de persona. select businessentityid from ???? where (????) ???? ('William Vong','Laura Norman','Sheela Word') and ????='EM' Page 17 5. Una vez que logró resolver la incertidumbre, recibe un nuevo llamado por parte de recursos humanos donde le pide que además de la información enviada, precisan conocer el Grupo del departamento, el nombre del departamento, el cargo actual y el nombre de estos empleados. Realice esta consulta teniendo como base la subconsulta generada en el punto 4.
  • 18. http://julycastiblanco.blogspot.com/ 6. Realice la misma consulta reemplazando la subconsulta por una CTE, a continuación un script guía para lograrlo WITH EMPLOYESS AS(???) (businessentityid) SELECT DP.GroupName,DP.Name,EM.JobTitle,(F irstName+' '+LastName) AS NOMBRE FROM ???? INNER JOIN EMPLOYESS ON EM.BusinessEntityID = EMPLOYESS.businessentityid WHERE EndDate IS NULL CONTENIDO #4 – APPLY Action Script 1. Cree una nueva base de datos llamada “DEMOAPPLY”. Screenshot CREATE DATABASE DEMOAPPLY GO  Page GO 18 USE DEMOAPPLY
  • 19. http://julycastiblanco.blogspot.com/ --Create Empleados table and insert values. CREATE TABLE Empleados ( empid ,mgrid int int NOT NULL NULL ,empname varchar(25) NOT NULL ,salary money NOT NULL CONSTRAINT PK_Empleados PRIMARY KEY(empid) ); GO , $10000.00); INSERT INTO Empleados VALUES(2 , 1 , 'Andrew' , $5000.00); INSERT INTO Empleados VALUES(3 , 1 , 'Janet' , $5000.00); INSERT INTO Empleados VALUES(4 , 1 , 'Margaret', $5000.00); INSERT INTO Empleados VALUES(5 , 2 , 'Steven' INSERT INTO Empleados VALUES(6 , 2 , 'Michael' , $2500.00); , $2500.00); 19 INSERT INTO Empleados VALUES(1 , NULL, 'Nancy' Page 2. Cree una nueva table denominada “Empleados” e ingrese los siguientes registros.
  • 20. http://julycastiblanco.blogspot.com/ INSERT INTO Empleados VALUES(7 , 3 , 'Robert' , $2500.00); INSERT INTO Empleados VALUES(8 , 3 , 'Laura' , $2500.00); INSERT INTO Empleados VALUES(9 , 3 , 'Ann' , $2500.00); INSERT INTO Empleados VALUES(10, 4 , 'Ina' , $2500.00); INSERT INTO Empleados VALUES(11, 7 , 'David' , $2000.00); INSERT INTO Empleados VALUES(12, 7 , 'Ron' , $2000.00); INSERT INTO Empleados VALUES(13, 7 , 'Dan' , $2000.00); INSERT INTO Empleados VALUES(14, 11 , 'James' , $1500.00); GO CREATE TABLE Departamentos ( deptid ,deptname INT NOT NULL PRIMARY KEY VARCHAR(25) NOT NULL GO 20 ,deptmgrid INT NULL REFERENCES Empleados); Page 3. Cree la taba de “departamentos” que equivale a las secciones de la compañía
  • 21. http://julycastiblanco.blogspot.com/ INSERT INTO Departamentos VALUES(1, 'HR', 2); INSERT INTO Departamentos VALUES(2, 'Marketing', 7); INSERT INTO Departamentos VALUES(3, 'Finance', 8); INSERT INTO Departamentos VALUES(4, 'R&D', 9); INSERT INTO Departamentos VALUES(5, 'Training', 4); INSERT INTO Departamentos VALUES(6, 'Gardening', NULL); CREATE FUNCTION dbo.fn_getsubtree(@empid AS INT) RETURNS @TREE TABLE ( empid INT NOT NULL ,empname VARCHAR(25) NOT NULL ,lvl ) AS INT NULL INT NOT NULL 21 ,mgrid Page 4. A continuación, cree una función de tipo tabla que se encargará de retornar a cada uno de los empleados del departamento y sus correspondientes subalternos. Note que esta función contiene también un CTE que es utilizado para garantizar las consultas recursivas para tomar todos los miembros del departamento y sus subalternos.
  • 22. http://julycastiblanco.blogspot.com/ BEGIN WITH Empleados_Subtree(empid, empname, mgrid, lvl) AS ( -- Anchor Member (AM) SELECT empid, empname, mgrid, 0 FROM Empleados WHERE empid = @empid UNION all -- Recursive Member (RM) JOIN Empleados_Subtree AS es Page FROM Empleados AS e 22 SELECT e.empid, e.empname, e.mgrid, es.lvl+1
  • 23. http://julycastiblanco.blogspot.com/ ON e.mgrid = es.empid ) INSERT INTO @TREE SELECT * FROM Empleados_Subtree; RETURN END GO SELECT D.deptid, D.deptname, D.deptmgrid ,ST.empid, ST.empname, ST.mgrid FROM Departamentos AS D 23 CROSS APPLY fn_getsubtree(D.deptmgrid) AS ST; Page 5. una vez ha creado la función, ejecute la siguiente consulta, como podrá ver, cada uno de los registros devueltos por la tabla Departamentos, va a ser un parámetro para ejecutar la función de tipo tabla que a su vez devolverá una tabla de empleados que coinciden en el departamento.