MODULO03
MODULO03
SQL USE
USE [testDB]
SQL SELECT
SELECT * FROM [Person].[Person];
SELECT DISTINCT [FirstName]
FROM [Person].[Person];
SELECT *
FROM [Person].[Person]
WHERE [FirstName]='Gustavo'
SELECT *
FROM [Person].[Person]
WHERE LastName='Brooks' AND FIRSTNAME='Allison'
SELECT *
FROM [Person].[Person]
WHERE (FIRSTNAME='Ariana' OR FIRSTNAME='Arianna')
SELECT *
FROM [Person].[Person]
WHERE LastName='Brooks' and FIRSTNAME like 'Alex%'
SELECT *
FROM [Person].[Person]
WHERE LastName='Brooks' and FIRSTNAME like '%lyn'
SELECT *
FROM [Person].[Person]
WHERE LastName='Brooks' and FIRSTNAME like 'a%a'
SELECT *
FROM [Person].[Person]
WHERE FIRSTNAME LIKE '[mj]%';
SELECT *
FROM [Person].[Person]
WHERE (FIRSTNAME='Ariana' OR FIRSTNAME='Arianna') AND NOT
LastName='Brooks'
SELECT *
LTORRES SQL SERVER 2017
FROM [Person].[Person]
ORDER BY ModifiedDate
SELECT LastName,FirstName
FROM [Person].[Person]
ORDER BY LastName,FirstName
SELECT *
FROM [Person].[Person]
where MiddleName is not null
SELECT TOP 10 *
FROM [Person].[Person]
order by ModifiedDate desc;
SELECT MIN(ModifiedDate)
FROM [Person].[Person]
SELECT MAX(ModifiedDate)
FROM [Person].[Person]
select count(*),sum(TotalDue),avg(TotalDue)
from [Sales].[SalesOrderHeader]
where SalesPersonID=279
select count(*),sum(TotalDue),avg(TotalDue)
from [Sales].[SalesOrderHeader]
where SalesPersonID=279
and ModifiedDate in ('2014-05-08','2014-05-07')
select count(*),sum(TotalDue),avg(TotalDue)
from [Sales].[SalesOrderHeader]
where SalesPersonID=279
and ModifiedDate between '2014-05-01' and '2014-05-31'
SQL JOIN
select
from [AdventureWorks2017].[Person].[Person] a
left join [AdventureWorks2017].[Person].[BusinessEntityAddress] b on
a.BusinessEntityID=b.BusinessEntityID and b.AddressTypeID=2
--- 19972
select *
from [AdventureWorks2017].[Person].[Person] a
right join [AdventureWorks2017].[Person].[BusinessEntityAddress] b on
a.BusinessEntityID=b.BusinessEntityID and b.AddressTypeID=2
-- 19614
select *
from [AdventureWorks2017].[Person].[Person] a
inner join [AdventureWorks2017].[Person].[BusinessEntityAddress] b on
a.BusinessEntityID=b.BusinessEntityID and b.AddressTypeID=2
--- 18,774
select *
from [AdventureWorks2017].[Person].[Person] a
full join [AdventureWorks2017].[Person].[BusinessEntityAddress] b on
a.BusinessEntityID=b.BusinessEntityID and b.AddressTypeID=2
--- 20,812
LTORRES SQL SERVER 2017
SQL GROUP BY
SELECT LastName,COUNT(*)
FROM [Person].[Person]
GROUP BY LastName
SQL HAVING
SELECT LastName,COUNT(*)
FROM [Person].[Person]
GROUP BY LastName
having COUNT(*) >100
SQL ORDER BY
SELECT LastName,COUNT(*)
FROM [Person].[Person]
GROUP BY LastName
having COUNT(*) >100
order by LastName asc
select SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7) as
PERIODO,count(*) as NroVentas,sum(TotalDue) as TotalVenta,avg(TotalDue)
PromedioVenta
from [Sales].[SalesOrderHeader]
WHERE ModifiedDate between '2014-01-01' and '2014-12-31'
GROUP BY SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7)
ORDER BY SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7) ASC
select SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7) as
PERIODO,SalesPersonID,count(*) as NroVentas,sum(TotalDue) as
TotalVenta,avg(TotalDue) PromedioVenta
from [Sales].[SalesOrderHeader]
where SalesPersonID=279
GROUP BY SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7),SalespersonID
ORDER BY SUBSTRING(CONVERT(NVARCHAR,ModifiedDate,102),1,7) ASC
LTORRES SQL SERVER 2017
SELECT D.*,
(CASE WHEN d.Name = 'Production' THEN 'PRD'
WHEN d.Name = 'Engineering' THEN 'ING'
WHEN d.Name = 'Marketing' THEN 'MKT'
ELSE NULL END) Nombre_siglas
FROM HumanResources.Department d
WHERE d.Name IN ('Production', 'Engineering', 'Marketing')
SELECT D.*,
(CASE WHEN d.Name = 'Production' THEN 1
WHEN d.Name = 'Engineering' THEN 1
WHEN d.Name = 'Marketing' THEN 1
ELSE 0 END) Nombre_siglas
FROM HumanResources.Department d
LTORRES SQL SERVER 2017
SELECT D.*,
(CASE WHEN d.Name = 'Production' THEN 1 ELSE 0 END) AS Production,
(CASE WHEN d.Name = 'Engineering' THEN 1 ELSE 0 END) AS Engineering,
(CASE WHEN d.Name = 'Marketing' THEN 1 ELSE 0 END) AS Marketing
FROM HumanResources.Department d
WHERE d.Name IN ('Production', 'Engineering', 'Marketing')
UPDATE
Tener mucha precaución, si se omite la condición “where” se
actualizará toda la tabla !!!
UPDATE [dbo].[Persons]
SET Address = '7448 Roundtree Drive'
WHERE PersonID=285;
(1 row affected)
UPDATE [dbo].[Persons]
SET Address = '7448 Roundtree Drive', FirstName='Abas'
WHERE PersonID=285;
(1 row affected)
CREACION DE VISTAS
select
BusinessEntityID,PersonType,NameStyle,Title,FirstName,MiddleName,La
stName,Suffix,EmailPromotion
into [Person]
from [AdventureWorks2017].[Person].[Person]
select *
into [SalesOrderDetail]
from [AdventureWorks2017].[Sales].[SalesOrderDetail]
select *
INTO [SalesOrderHeader]
from [AdventureWorks2017].[Sales].[SalesOrderHeader]
APLICACION DE INDICES
--- CARGAR BASE COMPARTIDA CON OPCION DE IMPORTACION DE ARCHIVOS PLANOS
LTORRES SQL SERVER 2017
LTORRES SQL SERVER 2017
LTORRES SQL SERVER 2017
LTORRES SQL SERVER 2017
LTORRES SQL SERVER 2017
select *
from [dbo].[historico_cliente_csv]
where id_asociado='43016' and id_periodo<='202107'
LTORRES SQL SERVER 2017
select *
from [dbo].[historico_cliente_csv]
where id_asociado='43016' and id_periodo<='202107'