De qué trata este documento
Ver el texto · 303 palabras
Practica Calificada 2
CODIGO: u 20231 e 067
APELLIDO Y NOMBRE: […]
S eccion :2536
Pregunta 1 :
SELECT
a.nombre,
COUNT(s.idsolicitud) AS cantidad_solicitudes
FROM
asesores a
JOIN
solicitudes s ON a.idasesor = s.idasesor
GROUP BY
a.nombre
Pregunta 2:
SELECT
i.nombre_instructor,
i.correo
FROM
instructores i
LEFT JOIN
servicios s ON i.idinstructor = s.idinstructor
LEFT JOIN
solicitudes sol ON s.idservicio = sol.idservicio
WHERE
sol.idsolicitud IS NULL
Pregunta 3:
SELECT i.idsolicitud,
COUNT(c.calificacion) AS cantidad_calificaciones,
AVG(c.calificacion) AS promedio_calificaciones
FROM solicitudes i
LEFT JOIN calificaciones c ON i.idsolicitud = c.idsolicitud
GROUP BY
i.idsolicitud
Pregunta 4 :
CREATE FUNCTION usuarios_mas_solicitudes_generales()
RETURNS TABLE (
usuario VARCHAR(250),
cantidad_solicitudes INT
)
AS
RETURN
SELECT sol.usuario, COUNT(sol.idsolicitud) AS cantidad_solicitudes
FROM solicitudes sol
WHERE sol.tipo_solicitud = 'general'
GROUP BY sol.usuario
HAVING COUNT(sol.idsolicitud) = (
SELECT MAX(sub.conteo)
FROM (
SELECT usuario, COUNT(idsolicitud) AS conteo
FROM solicitudes
WHERE tipo_solicitud = 'general'
GROUP BY usuario
) AS sub
);
Pregunta 5 :
CREATE FUNCTION servicio_menos_solicitado()
RETURNS TABLE (
nombre_servicio VARCHAR(250),
nombre_instructor VARCHAR(250),
cantidad_solicitudes INT
)
AS
RETURN
SELECT
s.nombre_servicio,
i.nombre_instructor,
COUNT(sol.idsolicitud) AS cantidad_solicitudes
FROM
servicios s
JOIN
instructores i ON s.idinstructor = i.idinstructor
LEFT JOIN
solicitudes sol ON s.idservicio = sol.idservicio
GROUP BY
s.idservicio, s.nombre_servicio, i.nombre_instructor
HAVING
COUNT(sol.idsolicitud) = (
SELECT MIN(conteo)
FROM (
SELECT s.idservicio, COUNT(sol.idsolicitud) AS conteo
FROM servicios s
LEFT JOIN solicitudes sol ON s.idservicio = sol.idservicio
GROUP BY s.idservicio
) AS sub
);
Pregunta 6 :
CREATE PROCEDURE actualizar_monto_total_solicitud
(@idSolicitud INT)
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS (SELECT 1 FROM solicitudes WHERE idsolicitud = @idSolicitud)
BEGIN
PRINT 'Error: La solicitud no existe.';
RETURN;
END
DECLARE @montoTotal DECIMAL(18,2);
SELECT @montoTotal = SUM(subtotal)
FROM servicios_solicitados
WHERE idsolicitud = @idSolicitud;
IF @montoTotal IS NULL
BEGIN
PRINT 'Error: La solicitud no tiene servicios asociados.';
RETURN;
END
UPDATE solicitudes
SET monto_total = @montoTotal
WHERE idsolicitud = @idSolicitud;
SELECT *
FROM solicitudes
WHERE idsolicitud = @idSolicitud;
END
El documento completo, con sus imágenes y su formato, está más arriba.
Antes de ponerte a estudiar, mira con quién te conviene llevar el curso: estas son las calificaciones que le pusieron otros estudiantes de UPC.