SQL Scripts.
Jesús AriasApuntes5 de Abril de 2016
456 Palabras (2 Páginas)175 Visitas
--=====================================
-- Funciones
--=====================================
----------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[miprimerafuncion]
(
@miparametro INT
)
RETURNS Date
AS
BEGIN
DECLARE @FECHA2 DATE;
SET @FECHA2 = CAST( CAST(@miparametro AS VARCHAR(10) ) AS DATE);
RETURN @FECHA2
END
-------------------------------------------------------------------------------------------------------------------------------------------------------------
ALTER FUNCTION [dbo].[Fecha]
(
@fecha INT
)
RETURNS Date
AS
BEGIN
DECLARE @fecha2 DATE;
SET @fecha2 = CONVERT(Date, CAST(@fecha AS VARCHAR(10)), 102);
RETURN @Fecha2;
END
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Create Table Ventas(IdVentas Int,
Fecha date,
IdCliente Int,
Monto Decimal(20,5))
Create Table IdClientes(IdCliente Int,
NombreCliente VARCHAR(25))
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
/*Se seleccionan las n compras mas recientes de cada cliente en una lista de morosos*/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE Miprocedimiento
@fechaentero INT
AS
BEGIN
SET NOCOUNT ON;
TRUNCATE TABLE BaseDatosII.dbo.InfoClientes
INSERT INTO BaseDatosII.dbo.InfoClientes(Orden,
NombreCliente,
Fecha,
Monto,
IdVentas)
SELECT Orden,
NombreCliente,
Fecha,
Monto,
IdVentas
FROM (SELECT ROW_NUMBER()
OVER (PARTITION BY A.IdCliente Order By Fecha Desc) Orden,
A.IdCliente,
A.nombreCliente,
B.Fecha,
B.monto,
B.IdVentas
FROM BaseDatosII.dbo.IdClientes A
INNER JOIN BaseDatosII.dbo.Ventas B
ON A.IdCliente = B. IdCliente) C
WHERE C.Orden <3
Order By IdCliente
END
-------------------------------------------------------------------------------------------------------------------------------------------------------------
/*Se seleccionan las n compras mas recientes de cada cliente en una lista de morosos, hecho por Yisus*/
ALTER PROCEDURE SP_PROCEDIMIENTOAlMACENADO
AS
BEGIN
DECLARE
@total INT,
@loop INT,
@identidadCliente INT
TRUNCATE TABLE DB_VENTAS.dbo.TBL_VENTAS_MORA
SET @total = (SELECT COUNT(1) FROM DB_VENTAS.dbo.TBL_CLIENTES)
SET @loop = 1
WHILE @loop <= @total
BEGIN
SET @identidadCliente = (SELECT A.IDCLIENTE
FROM ( SELECT DB_VENTAS.dbo.TBL_CLIENTES.ID_CLIENTE AS IDCLIENTE,
ROW_NUMBER() OVER (ORDER BY DB_VENTAS.dbo.TBL_CLIENTES.ID_CLIENTE)
...