Está en la página 1de 6

T-SQL Básico

Estudiante: Sadith Bruselas Sanchez Vasquez

Trabajo Práctico Nro.2: Tipos de Datos, Conversiones y NULL

Obtener datos de clientes y ventas


Continúe trabajando con los datos de clientes de Adventure Works, debe crear algunas consultas
para reportes que fueron solicitados por el equipo de Ventas.

1. Le solicitaron obtener una lista de todos los clientes con el formato <Customer ID> :
<Company Name> - por ejemplo: 78: Preferred Bike. La tabla que debe utilizar es la
SalesLT.Customer. Guarde un capture de la consulta realizada.

SELECT CustomerID, CompanyName FROM AdventureWorksLT2017.SalesLT.Customer


2. La tabla SalesLT.SalesOrderHeader contiene registros de la Órdenes de Venta. Le solicitaron
que consiga la información para un reporte que contenga lo siguiente (guarde un capture de la
consulta realizada):

• El número de Orden de Venta (SalesOrderNumber) y el número de revisión


(RevisionNumber) con el formato <Order Number> (<Revision>) – por ejemplo:
SO71774 (2)

SELECT SalesOrderNumber, RevisionNumber FROM AdventureWorksLT2017.SalesLT.SalesOrderHeader

• La fecha de la Orden (OrderDate) convertida al formato standard ANSI (yyyy.mm.dd –


por ejemplo 2015.01.31).

select CONVERT(nvarchar(10), OrderDate, 126) as FechaOrden from


AdventureWorksLT2017.SalesLT.SalesOrderHeader
Obtener datos de contacto de clientes
Algunos datos de la base tienen valores NULL, por lo que debe crear algunas consultas para
manejar estos NULL en forma apropiada.

select * from AdventureWorksLT2017.SalesLT.Customer


1. Debe escribir una consulta que devuelva una lista de nombres de clientes (tabla
SalesLT.Customer), la lista debe consistir en un único campo con el formato: <first name> <last
name> (por ejemplo: Keith Harris) si el nombre intermedio es desconocido, o <first name>
<middle name> <last name> (por ejemplo: Jane M. Gates) si el nombre intermedio está
guardado en la base de datos. Guarde un capture de la consulta realizada.

select FirstName +' '+ ISNULL(Middlename, '')+'' +' '+ LastName AS 'Nombres de Clientes' from
AdventureWorksLT2017.SalesLT.Customer
2. Los clientes suelen informar a Adventure Works una dirección de email, un número de
teléfono, o ambos. Si la dirección de email está disponible, entonces es utilizada como el método
de contacto primario, si no está disponible, entonces el número de teléfono debe ser utilizado.
Usted debe escribir una consulta que devuelva una lista de IDs de clientes en una columna, y
una segunda columna llamada ContactoPrimario, que contenga la dirección de email si es
conocida o el número de teléfono si el email no está disponible. Debe utilizar la tabla
SalesLT.Customer. Guarde un capture de la consulta realizada.

IMPORTANTE: En los datos de AdventureWorksLT, no hay registros de clientes sin email, por
lo tanto, para verificar que su consulta funciona bien, ejecute el siguiente UPDATE para
remover algún email existente antes de crear su consulta (no se preocupe, aprenderemos
sobre los UPDATE más adelante en este curso)

UPDATE SalesLT.Customer SET EmailAddress = NULL WHERE CustomerID % 7 = 1;

select CustomerId, ISNULL(EmailAddress, '')+'' +' '+ Phone as 'Contacto Primario'


from AdventureWorksLT2017.SalesLT.Customer
3. Debe crear una consulta sobre la tabla SalesLT.SalesOrderHeader que devuelva una lista de
IDs de Órdenes de Venta (SalesOrderID), con sus fechas (OrderDate) y una columna llamada
“StatusDelEnvío”, que contenga el texto “Enviado” para las órdenes con una fecha de envío
conocida (ShipDate), y el texto “En Espera” para las órdenes sin fecha de envío. Guarde un
capture de la consulta realizada.

IMPORTANTE: En los datos de AdventureWorksLT, no hay registros de Órdenes de Venta sin


fecha de envío, por lo tanto, para verificar que su consulta funciona bien, ejecute el siguiente
UPDATE para remover algunas fechas de envío antes de crear su consulta (no se preocupe,
aprenderemos sobre los UPDATE más adelante en este curso)

UPDATE SalesLT.SalesOrderHeader SET ShipDate = NULL WHERE SalesOrderID > 71899;

select SalesOrderID, orderdate,


CASE
WHEN shipdate >= '2008-06-01' then 'enviado'
else 'En espera'
end
from AdventureWorksLT2017.SalesLT.SalesOrderHeader

También podría gustarte