Consulta Nº2
Para la consulta nº 2 se solicito lo siguiente:
Consulta 2:
Entradas: Un rango de fechas.
a) Para cada estacion, listar los nombres 3 funcionarios que estando a cargo de esa estacion de trabajo, producen las esperas mas largas y el tiempo de espera promedio, ordenadas e mayor a menor respecto del tiempo de espera/
b) Los 3 funcionarios que estando a cargo de esa estacion de trabajo, producen las esperas mas largas y el tiempo de espera promedio
La cual quedo asi en sql:
/*SELECT E.Nombre, C.Nombre
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
INNER JOIN FB_Ficha F ON F.FK_TipoServicio=S.Id_TipoServicio
INNER JOIN FB_CajeroXEstacion CXE ON CXE.FK_Estacion = E.Id_Estacion
INNER JOIN FB_Cajero C ON CXE.FK_Cajero = C.Id_Cajero
GROUP BY E.Nombre, C.Nombre
ORDER BY E.Nombre
--HAVING COUNT(C.Nombre)= 3
*/
DECLARE @TEMP TABLE (NombreEstacion varchar(50),NombreEmpleado varchar(50))
DECLARE @Estaciones int
set @Estaciones = (SELECT COUNT(*)
FROM FB_Estacion
)
While(@Estaciones!=0)
BEGIN
--INSERT INTO @TEMP
SELECT TOP 3 E.Nombre,C.Nombre,MAX(F.TiempoEspera),AVG(F.TiempoEspera)
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
INNER JOIN FB_Ficha F ON F.FK_TipoServicio=S.Id_TipoServicio
INNER JOIN FB_CajeroXEstacion CXE ON CXE.FK_Estacion = E.Id_Estacion
INNER JOIN FB_Cajero C ON CXE.FK_Cajero = C.Id_Cajero
WHERE E.Id_Estacion = @Estaciones
GROUP BY E.Nombre,C.Nombre
SET @Estaciones = @Estaciones -1
END
SELECT * FROM @TEMP
Duracion 4 horas
No hay comentarios:
Publicar un comentario