Ejemplos
--
SELECCIONA LA BASE DE DATOS A TRABAJAR
USE
CrediSeguro;
GO
/*
Ejemplos de SELECT
2017/02/01
*/
SELECT
CodCliente, Nombre,
Apellido,
FechaNacimiento
FROM
Cliente;
--SELECT
con Cláusula WHERE
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE
CodCliente > 1989;
--
SELECT x Apellido = Rivera
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE
Apellido = 'Rivera';
--
SELECT con Funciones Built-In
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE YEAR(FechaNacimiento) = 1979;
--
SELECT con WHERE y AND
--
Nacidos en Febrero y día 1
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE MONTH(FechaNacimiento) = 2
AND DAY(FechaNacimiento) = 1;
--
SELECT con RANGO
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE MONTH(FechaNacimiento) = 2
AND DAY(FechaNacimiento) BETWEEN 10 AND 14;
-- SELECT con RANGO y ORDER BY
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE MONTH(FechaNacimiento) = 2
AND DAY(FechaNacimiento) BETWEEN 10 AND 14
ORDER BY DAY(FechaNacimiento);
-- TODOS
LOS CLIENTES ORDENADOS POR
-- EL
MES Y EL DIA DE SU FechaNacimiento
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
ORDER BY MONTH(FechaNacimiento), DAY(FechaNacimiento),
Apellido,
Nombre;
-- TODOS
LOS CLIENTES ordenados por
-- Mes y
día de su FechaNacimiento, Apellidos y Nombres DESC
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
ORDER BY MONTH(FechaNacimiento), DAY(FechaNacimiento),
Apellido DESC, Nombre DESC;
-- SELECT WHERE LIKE
SELECT Apellido, Nombre,
FechaNacimiento, CodCliente
FROM Cliente
WHERE YEAR(FechaNacimiento) BETWEEN 1970 AND 1985
AND Apellido LIKE 'M%'
ORDER BY Apellido, Nombre;
-- SELECT WHERE NOT
SELECT
Apellido, Nombre,
FechaNacimiento,
CodCliente
FROM
Cliente
WHERE YEAR(FechaNacimiento) BETWEEN 1980 AND 1985
AND NOT Apellido LIKE 'Mi%'
ORDER BY Apellido, Nombre;
-- INNER
JOIN Cliente y Tarjeta
SELECT
Apellido, Nombre,
Cliente.CodCliente, FechaNacimiento,
Tarjeta.NumeroTarjeta, FechaVencimiento,
SaldoActual
FROM
Cliente
INNER JOIN Tarjeta
ON
Cliente.CodCliente =Tarjeta.CodCliente
WHERE
FechaVencimiento > GETDATE()
AND
SaldoActual > 20000
ORDER BY FechaVencimiento,
Apellido, Nombre;
-- INNER
JOIN Cliente y Tarjeta
SELECT Apellido,
Nombre,
FechaNacimiento,
Cliente.CodCliente,
NumeroTarjeta,
FechaVencimiento, SaldoActual
FROM
Cliente
INNER JOIN Tarjeta
ON
Cliente.CodCliente =
Tarjeta.CodCliente
WHERE
FechaVencimiento > GETDATE()
ORDER BY FechaVencimiento;
-- INNER
JOIN Tarjeta y Movimiento
SELECT
NumeroTarjeta, FechaVencimiento,
SaldoActual,
M.Fecha, Abono, Cargo
FROM
Tarjeta T
INNER JOIN Movimiento M
ON T.CodTarjeta = M.CodTarjeta
WHERE
FechaVencimiento > GETDATE()
AND Cargo > 3000
ORDER BY NumeroTarjeta;
-- INNER
JOIN Tarjeta y Movimiento
SELECT NumeroTarjeta,
FechaVencimiento,
SaldoActual,
Fecha,
Cargo, Abono
FROM
Tarjeta
INNER JOIN Movimiento
ON
Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE
FechaVencimiento > GETDATE();
-- INNER
JOIN Cliente, Tarjeta, Movimiento
SELECT
Apellido, Nombre,
FechaNacimiento,
Cliente.CodCliente,
Tarjeta.NumeroTarjeta, FechaVencimiento,
SaldoActual,
Fecha,
Abono, Cargo
FROM
Cliente
INNER JOIN Tarjeta
ON Cliente.CodCliente
= Tarjeta.CodCliente
INNER JOIN Movimiento
ON
Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE
FechaVencimiento > GETDATE()
AND
Cargo > 4500
AND YEAR(Fecha) = 2014
ORDER BY Apellido, Nombre,
NumeroTarjeta,
Fecha;
-- INNER
JOIN Cliente, Tarjeta, Movimiento
SELECT
Apellido, Nombre,
Cliente.CodCliente,
NumeroTarjeta,
FechaVencimiento, SaldoActual,
Movimiento.Fecha, Movimiento.Abono, Cargo
FROM
Cliente
INNER JOIN Tarjeta
ON
Cliente.CodCliente =
Tarjeta.CodCliente
INNER JOIN Movimiento
ON
Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE
FechaVencimiento > GETDATE()
AND Cargo > 1000
AND Cliente.CodCliente
BETWEEN 100 AND
125
ORDER BY Apellido, Nombre,
NumeroTarjeta, Fecha;
--
EJEMPLO Query Designer
-- Menú
de Query, Design Query in Editor (Ctrl+Shift+Q)
SELECT Cliente.Apellido, Cliente.Nombre,
Cliente.FechaNacimiento, Cliente.CodCliente,
Tarjeta.NumeroTarjeta, Tarjeta.FechaVencimiento,
Tarjeta.SaldoActual, Movimiento.Fecha, Movimiento.Abono,
Movimiento.Cargo
FROM Cliente
INNER
JOIN Tarjeta
ON Cliente.CodCliente = Tarjeta.CodCliente
INNER JOIN Movimiento
ON Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE (Tarjeta.FechaVencimiento >
GETDATE())
AND (Movimiento.Cargo > 4500)
ORDER BY Cliente.Apellido, Cliente.Nombre, Tarjeta.NumeroTarjeta, Movimiento.Fecha
--
EJEMPLO Query Designer
-- Menú
de Query, Design Query in Editor (Ctrl+Shift+Q)
SELECT Cliente.Apellido, Cliente.Nombre,
Cliente.CodCliente,
Tarjeta.NumeroTarjeta,
Tarjeta.FechaVencimiento,
Tarjeta.LimiteCredito,
Tarjeta.SaldoActual,
Movimiento.Fecha, Movimiento.Abono,
Movimiento.Cargo
FROM Cliente
INNER JOIN Tarjeta
ON Cliente.CodCliente
= Tarjeta.CodCliente
INNER JOIN Movimiento
ON Tarjeta.CodTarjeta
= Movimiento.CodTarjeta
WHERE (Tarjeta.FechaVencimiento >
GETDATE())
ORDER BY Cliente.Apellido, Cliente.Nombre, Tarjeta.NumeroTarjeta, Movimiento.Fecha
-- EL USO DE COUNT
SELECT COUNT(*) AS NoClientes
FROM Cliente;
SELECT COUNT(*) AS Tarjetas23
FROM Tarjeta
WHERE CodCliente = 23;
SELECT COUNT(*) AS Tarjetas1898
FROM Tarjeta
WHERE CodCliente =
1898;
SELECT MAX(Cargo) AS Maximo
FROM Movimiento;
SELECT MIN(Cargo) AS Minimo2014
FROM Movimiento
WHERE YEAR(Fecha) = 2014;
SELECT MIN(Cargo) AS Minimo2015
FROM Movimiento
WHERE YEAR(Fecha) = 2015;
--
Listado de Operaciones
SELECT
NumeroTarjeta, Fecha,
Abono, Cargo
FROM
Tarjeta
INNER JOIN Movimiento ON
Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE YEAR(Fecha) = 2014
ORDER BY NumeroTarjeta,
Fecha;
SELECT
NumeroTarjeta, COUNT(*) AS NoMovimientos
, SUM(Cargo) AS SumaCargo, AVG(Cargo) AS PromedioCargo
FROM
Tarjeta
INNER JOIN Movimiento
ON
Tarjeta.CodTarjeta =
Movimiento.CodTarjeta
WHERE YEAR(Fecha) = 2014
GROUP BY
NumeroTarjeta;
--
Información Resumen por Mes de Movimientos
SELECT YEAR(Fecha) AS Anio, MONTH(Fecha) AS Mes,
COUNT(*) AS Conteo, AVG(Cargo) AS Promedio
, MAX(Cargo) AS Maximo, MIN(Cargo) AS Minimo
, SUM(Cargo) AS SumaCargo, SUM(Abono) AS SumaAbono
FROM
Movimiento
GROUP BY YEAR(Fecha), MONTH(Fecha)
ORDER BY YEAR(Fecha), MONTH(Fecha);
-- CONTEO DE FILAS
SELECT COUNT(*) AS TotalMovs
FROM Movimiento;
--
SUMATORIA de las Columnas
SELECT SUM(Cargo) AS TotalCargo,
SUM(Abono) AS TotalAbono
FROM
Movimiento;
--
PROMEDIO x Tarjeta
SELECT
CodTarjeta, AVG(Cargo) AS Promedio
FROM
Movimiento
GROUP BY CodTarjeta;
SELECT
CodTarjeta, Cargo,
Fecha
FROM
Movimiento
ORDER BY CodTarjeta;
-- Datos
Generales por Tarjeta
-- Año
2015
--
Tarjetas con Más de 3 Movimientos o Más
SELECT
CodTarjeta, COUNT(Cargo) AS Cantidad,
SUM(Cargo) AS Total, AVG(Cargo) AS Promedio,
MIN(Cargo) AS Minimo, MAX(Cargo) AS Maximo
FROM
Movimiento
WHERE YEAR(Fecha) = 2015
GROUP BY CodTarjeta
HAVING COUNT(Cargo) > 2
ORDER BY CodTarjeta;
USE
CrediSeguro;
GO
--
CONTEO DE FILAS
SELECT COUNT(*) AS TotalMovs
FROM Movimiento;
--
SUMATORIA de las Columnas
SELECT SUM(Cargo) AS TotalCargo,
SUM(Abono) AS TotalAbono
FROM
Movimiento;
--
PROMEDIO x Tarjeta
SELECT
CodTarjeta, AVG(Cargo) AS Promedio
FROM
Movimiento
GROUP BY CodTarjeta;
SELECT
CodTarjeta, Cargo,
Fecha
FROM
Movimiento
ORDER BY CodTarjeta;
-- Datos
Generales por Tarjeta
-- Año
2015
--
Tarjetas con Más de 3 Movimientos o Más
SELECT
CodTarjeta, COUNT(Cargo) AS Cantidad,
SUM(Cargo) AS Total, AVG(Cargo) AS Promedio,
MIN(Cargo) AS Minimo, MAX(Cargo) AS Maximo
FROM
Movimiento
WHERE YEAR(Fecha) = 2015
GROUP BY CodTarjeta
HAVING COUNT(Cargo) > 2
ORDER BY CodTarjeta;
SELECT
CodCliente, Apellido,
Nombre,
FechaNacimiento
FROM
Cliente
WHERE Apellido LIKE 'M%r%n'
--AND Nombre LIKE 'A%r'
ORDER BY Apellido, Nombre;