Consulta Nº3
Entradas: Una fecha
Partiendo de lunes anterior mas cercano, para cada dia de la semana,
a) liste las estaciones que recibe más tiquetes o fichas que corresponden al tramite de segunda prioridad.
b) Liste los funcionarios a cargo que recibe más tiquetes o fichas que corresponden al tramite de tercera prioridad, respecto la estacion en donde laboran durante el dia.
La cual queda asi en SQL:
/* 2HORAS
Consutla 3:
Entradas: Una fecha
Partiendo de lunes anterior mas cercano, para cada dia de la semana,
a) liste las estaciones que recibe más tiquetes o fichas que corresponden al tramite de segunda prioridad.
*/
ALTER PROC FBSP_GetEstaciones2Prioridad
@fecha DATE
AS
BEGIN
SELECT E.Nombre,COUNT(F.Id_Ficha) Tiquetes, S.Nombre,EXS.Prioridad
FROM FB_Estacion E
INNER JOIN FB_EstacionXServicio EXS ON EXS.FK_Estacion=E.Id_Estacion
INNER JOIN FB_TipoServicio S ON S.Id_TipoServicio=EXS.FK_TipoServicio AND EXS.Prioridad=2
INNER JOIN FB_Ficha F ON F.FK_TipoServicio=S.Id_TipoServicio
GROUP BY E.Nombre,S.Nombre,EXS.Prioridad,F.TiempoInicioServicio,S.Nombre
HAVING (DATEPART(WEEK,F.TiempoInicioServicio))=(DATEPART(WEEK,@fecha))
ORDER BY Tiquetes DESC
END
/*
b) Liste los funcionarios a cargo que recibe más tiquetes o fichas que corresponden al
tramite de tercera prioridad, respecto la estacion en donde laboran durante el dia.
*/
ALTER PROC FBSP_GetCajeros3Prioridad
@fecha DATE
AS
BEGIN
--declare @fecha date= '2013-01-14'
SELECT DISTINCT C.Nombre Cajero,E.Nombre Estacion,COUNT(F.Id_Ficha) Tiquetes,S.Nombre TipoServicio,EXS.Prioridad
,(DATEPART(WEEK,F.TiempoInicioServicio)) Fecha
FROM FB_Cajero C
INNER JOIN FB_CajeroXEstacion CXE ON CXE.FK_Cajero=C.Id_Cajero
INNER JOIN FB_Estacion E ON E.Id_Estacion=CXE.FK_Estacion
INNER JOIN FB_EstacionXServicio EXS ON EXS.FK_Estacion=E.Id_Estacion
INNER JOIN FB_TipoServicio S ON S.Id_TipoServicio=EXS.FK_TipoServicio AND EXS.Prioridad=3
INNER JOIN FB_Ficha F ON F.FK_TipoServicio=S.Id_TipoServicio
GROUP BY C.Nombre,E.Nombre,F.TiempoInicioServicio,S.Nombre,EXS.Prioridad
HAVING (DATEPART(WEEK,F.TiempoInicioServicio))=(DATEPART(WEEK,@fecha))
ORDER BY Tiquetes DESC
END
Duración 4horas
No hay comentarios:
Publicar un comentario