Ejemplos:
-- =============================================
-- EJEMPLOS: 2016-11-09
-- =============================================
USE CSDaniel;
GO
SELECT DPI, Nombre, Apellido
FROM Cliente;
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS Anio
FROM Cliente
WHERE YEAR(FechaNacimiento) = 1985;
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS Anio
FROM Cliente
WHERE Apellido = 'mesa';
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS [Año Nac.]
FROM Cliente
WHERE
Apellido LIKE 'M%';
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS [Año Nac.]
FROM Cliente
WHERE
Apellido LIKE 'M%'
AND MONTH(FechaNacimiento) = 11;
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS [Año Nac.]
, MONTH(FechaNacimiento) AS Mes
FROM Cliente
WHERE Apellido LIKE 'M%'
OR MONTH(FechaNacimiento) = 10;
SELECT DPI, Nombre, Apellido
, YEAR(FechaNacimiento) AS [Año Nac.]
, MONTH(FechaNacimiento) AS Mes
FROM Cliente
WHERE (Apellido LIKE 'M%'
OR MONTH(FechaNacimiento) = 10)
AND YEAR(FechaNacimiento) = 1980;
SELECT Nombre, Apellido,
YEAR(FechaNacimiento) AS [Año]
FROM Cliente
WHERE YEAR(FechaNacimiento)
BETWEEN 1965 AND 1980;
SELECT Nombre, Apellido
FROM Cliente
ORDER BY DPI;
SELECT Apellido, Nombre
FROM Cliente
ORDER BY Apellido, Nombre;
SELECT Apellido, Nombre
, YEAR(FechaNacimiento) AS Anio
FROM
Cliente
WHERE
NOT YEAR(FechaNacimiento) = 1985
ORDER
BY YEAR(FechaNacimiento) DESC,
Apellido, Nombre;
SELECT NumeroTarjeta, FechaVencimiento,
LimiteCredito,
YEAR(FechaVencimiento) AS Anio
FROM Tarjeta
WHERE (YEAR(FechaVencimiento) = 2018)
ORDER BY
FechaVencimiento DESC;
-- INNER JOIN Cliente y
Tarjeta
SELECT Apellido, Nombre
, NumeroTarjeta,
FechaVencimiento
FROM Cliente
INNER JOIN Tarjeta
ON Cliente.CodCliente
= Tarjeta.CodCliente
ORDER BY Apellido, Nombre;
SELECT Cliente.Apellido, Cliente.Nombre,
Tarjeta.NumeroTarjeta,
Movimiento.Fecha,
Movimiento.Cargo, Movimiento.Abono
FROM Cliente
INNER JOIN Tarjeta
ON Cliente.CodCliente
= Tarjeta.CodCliente
INNER JOIN Movimiento
ON Tarjeta.CodTarjeta
= Movimiento.CodTarjeta
WHERE Nombre LIKE 'BE%'
ORDER
BY Cliente.Apellido
DESC,
Cliente.Nombre,
Movimiento.Fecha DESC;
-- Clientes y Tarjetas que
Vencen en 2016-11
SELECT C.Apellido, C.Nombre,
T.NumeroTarjeta,
YEAR(T.FechaVencimiento) AS AnioVenc
FROM Cliente C
INNER
JOIN Tarjeta T
ON C.CodCliente = T.CodCliente
WHERE YEAR(T.FechaVencimiento) = 2016
AND MONTH(T.FechaVencimiento) = 11
ORDER BY C.Apellido, C.Nombre;
----------------------
-- Ejemplos 2016-11-10
----------------------
USE CSDaniel;
GO
SELECT COUNT(*) AS CantidadClientes
FROM
Cliente;
SELECT COUNT(*) AS Clientes1984
FROM
Cliente
WHERE
YEAR(FechaNacimiento) = 1984;
-- Movimientos de la
Tarjeta
-- Cargos son gastos con la
Tarjeta
SELECT MIN(Cargo) AS Minimo,
MAX(Cargo) AS Maximo,
AVG(Cargo) AS Promedio
FROM Movimiento;
-- Movimientos de la
Tarjeta Codigo 1
SELECT MIN(Cargo) AS Minimo,
MAX(Cargo) AS Maximo,
AVG(Cargo) AS Promedio,
SUM(Cargo) AS TotalCargos
FROM Movimiento
WHERE CodTarjeta = 1
AND
YEAR(Fecha) = 2015;
-- AGRUPAR POR COLUMNA,
SOLO LAS COLUMNAS
-- DEL GROUP BY Pueden ir
en el SELECT
SELECT CodTarjeta,
SUM(Cargo) AS CargoTotal,
SUM(Abono) AS AbonoTotal,
SUM(Cargo) - SUM(Abono) AS Saldo
FROM
Movimiento
GROUP
BY CodTarjeta
ORDER
BY CodTarjeta;
GO
-- Crear una vista usando
un SELECT
CREATE VIEW vTarjetaSaldo
AS
SELECT CodTarjeta,
SUM(Cargo) AS CargoTotal,
SUM(Abono) AS AbonoTotal,
SUM(Cargo) - SUM(Abono) AS Saldo
FROM Movimiento
GROUP BY CodTarjeta;
GO
-- Utilizar la Vista
SELECT *
FROM
vTarjetaSaldo
ORDER
BY Saldo DESC;
-- INNER JOIN con Vistas
-- SELECT para crear
vClienteTarjeta
SELECT Cliente.Apellido, Cliente.Nombre,
Tarjeta.NumeroTarjeta,
Tarjeta.FechaVencimiento,
Tarjeta.LimiteCredito,
vTarjetaSaldo.Saldo, vTarjetaSaldo.CargoTotal,
vTarjetaSaldo.AbonoTotal
FROM Cliente INNER JOIN Tarjeta
ON Cliente.CodCliente
= Tarjeta.CodCliente
INNER JOIN
vTarjetaSaldo
ON Tarjeta.CodTarjeta
= vTarjetaSaldo.CodTarjeta
WHERE Cliente.Nombre = 'ENA'
ORDER BY Cliente.Apellido, Cliente.Nombre;
SELECT *
FROM vClienteTarjeta
WHERE Nombre = 'Ena'
ORDER BY Apellido, Nombre;
-- CodTarjeta = 2554, 2795
SELECT CodTarjeta
FROM Tarjeta
WHERE NumeroTarjeta =
'4111113190464280';
-- INSERT Movimiento
INSERT INTO Movimiento
(CodTarjeta, Cargo, Abono, Fecha)
VALUES
(2554, 0, 3500, '2015/02/28');
INSERT INTO Movimiento
(CodTarjeta, Cargo, Abono, Fecha)
VALUES
(2795, 0,
2500, '2015/01/28'),
(2795, 0,
2525, '2015/02/28'),
(2795, 0, 2550, '2015/03/28'),
(2795, 0, 2560, '2015/04/28');
SELECT *
FROM Movimiento
WHERE CodTarjeta =
2554;
UPDATE Movimiento
SET CodTarjeta = 2554
WHERE CodTarjeta =
2795
AND CodMovimiento =
24003;
UPDATE Movimiento
SET CodTarjeta = 2554
WHERE CodMovimiento =
24004;
UPDATE Movimiento
SET CodTarjeta = 2554
WHERE CodMovimiento =
24005;
-- El pago fue con cheque,
el cheque fue anulado
-- Se borra el abono de la
tabla Movimiento
DELETE FROM Movimiento
WHERE CodMovimiento =
24005;
-- Modificar Tabla Cliente
-- Agregar Columna Estado
-- El Valor por Omisión es:
'A'
ALTER TABLE Cliente
ADD Estado CHAR(1) NOT NULL
CONSTRAINT Cliente_CT_Estado DEFAULT
'A';
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Daniel
Santizo Saldaña
-- Create date: 2016-11-09
-- Description: Proc Dar de Baja al Cliente
-- =============================================
CREATE PROCEDURE paInactivar
--
Add the parameters for the stored procedure here
@CodCliente int = 0
AS
BEGIN
--
SET NOCOUNT ON added to prevent extra result sets from
--
interfering with SELECT statements.
SET
NOCOUNT ON;
--
VARIABLES
DECLARE @Contador INT;
-- INICIALIZAR EL VALOR
SET @Contador = 0;
-- Consultar y ASIGNAR VALOR
SELECT @Contador = COUNT(*)
FROM Cliente
WHERE CodCliente = @CodCliente;
--
Evaluar @Contador
IF (@Contador > 0)
BEGIN
UPDATE Cliente
SET Estado = 'B'
WHERE CodCliente =
@CodCliente;
END;
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Daniel
Santizo Saldaña
-- Create date: 2016-11-09
-- Description: Recibe un CodCliente y si el Cliente
-- Existe y está Inactivo
('B') entonces lo Activa ('A')
-- =============================================
CREATE PROCEDURE paActivar
--
Add the parameters for the stored procedure here
@CodCliente int = 0
AS
BEGIN
--
SET NOCOUNT ON added to prevent extra result sets from
--
interfering with SELECT statements.
SET
NOCOUNT ON;
--
VARIABLE
DECLARE @Contador INT;
-- Inicializar
SET @Contador = 0;
-- Consultar la Tabla
SELECT @Contador = COUNT(*)
FROM Cliente
WHERE CodCliente = @CodCliente
AND Estado = 'B';
-- Verificar Existencia
IF (@Contador > 0)
UPDATE Cliente SET Estado = 'A'
WHERE CodCliente =
@CodCliente;
END
GO
-- INFORMACION DE LOS
CLIENTES para ver quienes están activos
SELECT *
FROM Cliente;
-- Ejecutar o Invocar
Procedimiento Almacenado
EXECUTE paInactivar 1;
SELECT *
FROM
Cliente WHERE CodCliente = 1;
EXEC paActivar 1;
SELECT *
FROM
Cliente WHERE CodCliente = 1;
No hay comentarios.:
Publicar un comentario