1

🧩 Syntax:
CREATE PROCEDURE dbo.ObtenerProductosPorCategoria
    @COD_CATE1 INT,
    @COD_CATE2 INT,
    @NOMBRE_CATE1 NVARCHAR(50) OUTPUT,
    @NOMBRE_CATE2 NVARCHAR(50) OUTPUT,
    @CANTIDAD_CATE1 INT OUTPUT,
    @CANTIDAD_CATE2 INT OUTPUT
AS
BEGIN
    SET NOCOUNT ON;

    -- Obtener el nombre de la primera categoría y la cantidad de productos registrados
    SELECT @NOMBRE_CATE1 = NOMBRE_CATE, @CANTIDAD_CATE1 = COUNT(*)
    FROM PRODUCTO
    WHERE COD_CATE = @COD_CATE1
    GROUP BY NOMBRE_CATE

    -- Obtener el nombre de la segunda categoría y la cantidad de productos registrados
    SELECT @NOMBRE_CATE2 = NOMBRE_CATE, @CANTIDAD_CATE2 = COUNT(*)
    FROM PRODUCTO
    WHERE COD_CATE = @COD_CATE2
    GROUP BY NOMBRE_CATE
END

DECLARE @NOMBRE_CATE1 NVARCHAR(50), @NOMBRE_CATE2 NVARCHAR(50), @CANTIDAD_CATE1 INT, @CANTIDAD_CATE2 INT;

EXEC dbo.ObtenerProductosPorCategoria @COD_CATE1 = 1, @COD_CATE2 = 2, @NOMBRE_CATE1 = @NOMBRE_CATE1 OUTPUT, @NOMBRE_CATE2 = @NOMBRE_CATE2 OUTPUT, @CANTIDAD_CATE1 = @CANTIDAD_CATE1 OUTPUT, @CANTIDAD_CATE2 = @CANTIDAD_CATE2 OUTPUT;

PRINT 'La categoría ' + @NOMBRE_CATE1 + ' tiene ' + CAST(@CANTIDAD_CATE1 AS NVARCHAR(10)) + ' productos.';
PRINT 'La categoría ' + @NOMBRE_CATE2 + ' tiene ' + CAST(@CANTIDAD_CATE2 AS NVARCHAR(10)) + ' productos.';