Procedure: Problema 7 y Problema 8 Luis
DESCRIPCION:
7) Los nombres de los clientes que compraron tiquetes al menos una
vez, y que no regresaron a comprar, en un periodo de fechas.
Entradas: fecha inicio, fecha fin
Salidas: Nombre del cliente, fecha de la compra; en orden alfabetico del nombre del cliente
8) Los eventos, a los que a los clientes asistieron a funciones mas de una vez, en un rango de fechas
Entrada: Fecha inicio, fecha fin
Salida
Para cada evento: Nombre del evento, numero de personas que asistieron a 2 funciones, numero de personas que asistieron a 3 funciones, numero de personas que asistieron a mas de 3 funciones.
PROBLEMAS:
Error: Msg 8152 Conflicto con tamaño de variables a la hora de programar el SP.
Con los archivos de prueba proporcionados no era posible probarse en su totalidad el SP, debido a que cada cliente (al ser tan pocos) tenía a su nombre cientos de tiquetes
CODIGO:
----------------------------------------------------------------------------------------------------------------------
-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_Clientes_Abandono', N'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_Clientes_Abandono;
GO
/*
7) Los nombres de los clientes que compraron tiquetes al menos una
vez, y que no regresaron a comprar, en un periodo de fechas.
Entradas: fecha inicio, fecha fin
Salidas: Nombre del cliente, fecha de la compra; en orden alfabetico del nombre del cliente
*/
Create Procedure BT_SP_Clientes_Abandono
@FechaIni datetime,
@FechaFin datetime
As
Begin
BEGIN TRY
BEGIN TRANSACTION
Select nombre From BT_Usuario
inner join BT_Tiquete on BT_Usuario.Id = BT_Tiquete.FK_Usuario
inner join BT_AsientoXTanda on BT_Tiquete.FK_AsientoXTanda = BT_AsientoXTanda.Id
inner join BT_Tanda on BT_Tanda.Id = BT_AsientoXTanda.FK_Tanda
Where (select count (*) From BT_Tiquete)=1
and FechaHora between @FechaIni and @FechaFin
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
RETURN 1;
END TRY
BEGIN CATCH
EXEC BT_SP_GetErrorInfo;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH
END
GO
-- exec BT_SP_Clientes_Abandono '2014-11-21 00:00:00.000', '2015-07-13 00:00:00.000'
Horas Trabajadas: 3,15 hora
Autor: Luis Diego Flores

0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio