Documente Academic
Documente Profesional
Documente Cultură
IF @promedio<20
print 'El promedio de edad de estas personas es
menor a 20: ' +cast(@promedio as varchar)
ELSE
print 'El promedio de edad de estas personas es
mayor de 20: ' +cast(@promedio as varchar)
• Con parametros de entrada y
parametros de salida
• PA que devuelve el costo basico de una
asignatura pasada como parametro de
entrada. Se devuelve en el parametro de
salida.
create procedure costeasig @nombre varchar(50),
@coste int output
as
IF (SELECT COUNT(*) FROM asignatura WHERE
nombre=@nombre) = 0
print 'no existe asignatura'
else
select @coste=costebasico from asignatura where
nombre=@nombre
declare @cos int
exec costeasig 'mate', @coste=@cos output
if @cos>30
print 'asignatura muy cara: '+cast(@cos as
varchar)
else
print 'precio asignatura esta ok: '+cast(@cos as
varchar)
• Lo mismo usando ademas RETURN
create procedure costeasig2 @nombre
varchar(50), @coste int output
as
IF (SELECT COUNT(*) FROM asignatura WHERE
nombre=@nombre) = 0
RETURN(1)
else
select @coste=costebasico from asignatura where
nombre=@nombre
return(0)
declare @cos int, @est int
exec @est=costeasig2 'mate', @coste=@cos output
if @est=0
begin
print 'asignatura existe'
if @cos>30
print 'asignatura muy cara: '+cast(@cos as varchar)
else
print 'precio asignatura esta ok: '+cast(@cos as
varchar)
end
else
if @est=1
print 'no existe esta asignatura'
• Ejercicio.
• PA que calcule la cantidad de alumnos
que inscribieron un ramo especifico. Si la
cantidad es menor de 10, debe imprimir
un mensaje por pantalla.
• El nombre del ramo sera ingresado.
Verificar existencia.
• Debe mostrar el valor calculado.
• create procedure cantalumnos @nombre
varchar(50), @cantidad int output
• as
• IF exists (SELECT * FROM asignatura WHERE
nombre=@nombre)
• begin
• select @cantidad= count(*) from
alumnoasignatura, asignatura where
alumnoasignatura.idasignatura=asignatura.idasi
gnatura and asignatura.nombre=@nombre
• RETURN(0)
• end
• else
• return(1)
• declare @cant int, @est int
• exec @est=cantalumnos 'ingles', @cantidad=@cant
output
• if @est=0
• begin
• print 'asignatura existe'
• if @cant>10
• print 'Bien, ramo tiene mas de 10 alumnos:
'+cast(@cant as varchar)
• else
• print 'Cantidad de alumnos muy baja:
'+cast(@cant as varchar)
• end
• else
• if @est=1
• print 'no existe esta asignatura'
• Ejercicio.
• PA que calcule el promedio de creditos de
una titulacion especifica a ser ingresada.
Verificar existencia.
• Debe mostrar el valor calculado.
• Debe imprimir mensajes por pantalla, si el
promedio de creditos es mayor o menor
de 6.
• create procedure creditos @nombre
varchar(20), @suma int output
• as
• IF exists (SELECT * FROM titulacion WHERE
nombre=@nombre)
• begin
• select @suma= avg(creditos) from asignatura,
titulacion where
asignatura.idtitulacion=titulacion.idtitulacion and
titulacion.nombre=@nombre
• RETURN(0)
• end
• else
• return(1)
• declare @sum int, @est int
• exec @est=creditos 'ciencias', @suma=@sum output
• if @est=0
• begin
• print 'titulacion existe'
• if @sum>6
• print 'Promedio de creditos de titulacion es muy alto '
+cast(@sum as varchar)
• else
• print 'Promedio de creditos esta dentro de lo pedido '
+cast(@sum as varchar)
• end
• else
• if @est=1
• print 'no existe esta titulacion'