Professional Documents
Culture Documents
DECLARE
@a VARCHAR(40),
@N VARCHAR(20),
@cD VARCHAR(20),
@cT INT,
@m MONEY
EXEC SPU_VENTASAUTOR
'238-95-7766'
@a OUTPUT,
@N OUTPUT,
@cD OUTPUT,
@cT OUTPUT,
@m OUTPUT
SELECT
@a AS APELLIDOS,
@N AS NOMBRES,
@cD AS CIUDAD,
@cT AS CANTIDAD,
@m AS MONTO
GO
USE Northwind
GO
SELECT *
FROM Orders O
INNER JOIN [Order Details] OD ON O.OrderID = OD.OrderID
INNER JOIN Products P ON OD.ProductID =
P.ProductID
GO
SELECT
OD.ProductID,
P.ProductName,
ROUND(SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)), 2)
FROM Orders O
INNER JOIN [Order Details] OD ON O.OrderID = OD.OrderID
INNER JOIN Products P ON OD.ProductID =
P.ProductID
GROUP BY OD.ProductID, P.ProductName
GO
SELECT OD.ProductID, P.ProductName,
ROUND(SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)),2)
FROM Orders O
INNER JOIN [Order Details] OD ON O.OrderID = OD.OrderID
INNER JOIN Products P ON OD.ProductID =
P.ProductID
GROUP BY OD.ProductID, P.ProductName
HAVING OD.ProductID = 3
GO
SELECT OD.ProductID, P.ProductName,
ROUND(SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)),2)
FROM Orders O
INNER JOIN [Order Details] OD ON O.OrderID = OD.OrderID
INNER JOIN Products P ON OD.ProductID =
P.ProductID
WHERE O.OrderDate BETWEEN '19970101' AND '19970331'
GROUP BY OD.ProductID, P.ProductName
HAVING OD.ProductID = 3
GO
-- -- eductec
-- escriba el script necesario para probar el sp
-- los valores de retorno son :+
-- 0 ok
-- 1 valor nulo
-- 2 curso no programado
-- 3 alumno no registrado
-- 4 no hay vacantes para el curso
-- 5 el curso ya no esta activo
-- 6 error de bd
use EduTec
go
CREATE PROCEDURE spu_MatriculaAlumno
@cursoprog INT,
@idalumno CHAR(5),
@fecmatricula DATETIME
AS
DECLARE @vacantes TINYINT
DECLARE @activo BIT
IF (@cursoprog IS NULL) OR
(@idalumno IS NULL) OR
(@fecmatricula IS NULL)
BEGIN
PRINT 'VALOR NULO'
RETURN 1
END
IF NOT EXISTS(SELECT idcursoprog FROM cursoprogramado
WHERE idcursoprog = @cursoprog)
BEGIN
PRINT 'ESTE CURSO NO ESTA PROGRAMADO'
RETURN 2
END
IF NOT EXISTS(SELECT apealumno + ', ' + nomalumno FROM alumno
WHERE IDALUMNO = @idalumno)
BEGIN
PRINT 'EL ALUMNO NO ESTA REGISTRADO'
RETURN 3
END
SELECT @vacantes = vacantes, @activo = activo FROM cursoprogramado
WHERE idcursoprog = @cursoprog
IF @vacantes = 0
BEGIN
PRINT 'YA NO HAY VACANTES PARA ESTE CURSO'
RETURN 4
END
IF @activo = 0
BEGIN
PRINT 'EL CURSO YA NO ESTA ACTIVO'
RETURN 5
END
BEGIN TRAN
UPDATE CursoProgramado
SET vacantes = vacantes -1, matriculados = matriculados + 1
WHERE idcursoprog = @cursoprog
INSERT INTO matricula (idcursoprog,idalumno,fecmatricula)
VALUES (@cursoprog,@idalumno,@fecmatricula)
IF @@ERROR <> 0
BEGIN
PRINT ' ERROR EN LA BD'
ROLLBACK TRAN
RETURN 6
END
COMMIT TRAN
RETURN 0
GO
-- PRUEBA DEL SP
-- CONDICIONES INICIALES
-- VERIFICAMOS