TALLER FUNCIONES Usando la base de datos Neptuno:
1. Crear una una función función que permita permita calcular calcular el precio precio de Venta Venta de un product producto o en temporada temporada navideña, dado su nombre (parte de él). El precio se calcula dependiendo de la categora del mismo as! Categora "ebidas! se incrementa en un #.#$ Categoras %epostera, %epostera, &'cteos Carnes! se incrementan en un .#$ .#$ Categora *escado+mariscos! *escado+mariscos! se incrementa por temporada en un $ &as dem's categoras no sufren incrementos. create function precionavidad precionavidad(@producto varchar varchar( (80)) 80)) returns money as begin declare @cat declare @cat money money, ,@precio money money, ,@preciototal money select @cat select @cat= =IdCategoria, IdCategoria,@producto= @producto=Nombreroducto ,@precio= @precio=recio!nidad from from roducto roducto "#$%$ Nombreroducto "#$%$ Nombreroducto = &e' espada& select @preciototal select @preciototal= = case hen NombreCategoria hen NombreCategoria= =&ebidas& then then @precio @precio* *+0-hen hen NombreCategoria in (&%eposter.a& ,&/cteos& &/cteos&, ,&Carnes& &Carnes&) ) then then @precio @precio* *+01hen NombreCategoria hen NombreCategoria= =&escado23arisco& then then @precio @precio* *+01 end from Categoria from Categoria here IdCategoria here IdCategoria= =@cat return @preciototal return @preciototal end
. Crear una función que muestre los clientes (nombre , dirección teléfono) dado un pas de origen. create function paisorigen(@nombrepais varchar(80)) returns table as return( select IdCliente,4ireccion,5elefono from Cliente here ais = @nombrepais )
. Crear una función que muestre una lista con nombre del producto, precio can-dad vendida, de los productos que se an vendido en un mes en par-cular. create function 6entas3es (@fecha date) returns table as return( select Nombreroducto,roductorecio!nidad,sum(Cantidad)as Cantidad6endida from roducto inner 7oin 4etallesdeedido on roductoIdroducto =4etallesdeedido Idroducto inner 7oin edido on 4etallesdeedidoIdedido=edidoIdedido here 9echaedido = @fecha group by Nombreroducto,roductorecio!nidad )
Usando la base de datos Terminal de Transporte:
1. Crear una función que permita obtener los nombres de las rutas que a reali/ado un bus, del cual se recibe la placa. create function placaruta(@placa varchar(+0)) returns table as return (select runombruta from 6ia7es inner 7oin %utas on 6ia7esvicodiruta = %utasrucodiruta here viplaca = @placa )
. Crear una función que devuelva los datos de los via0es que a reali/ado un conductor del cual se recibe su nombre completo. create function via7esconductor (@nombre varchar(-0)) returns table as return( select * from 6ia7es inner 7oin Conductores on 6ia7esvicodiconduc=Conductorescocodiconduc here conombconduc=@nombre )
. Crear una función que reciba el nombre de una ota devuelva el listado con los buses que se encuentran vinculados a ella. create function busesporflota (@flota varchar(:-)) returns table as return(select flnombflot,buplaca from 9lotas inner 7oin uses on 9lotasflcodiflot =usesbucodiflot here flnombflot=@flota)
2. Crear una función que retorne el valor total recolectado por pasajes para un periodo de tiempo particular del cual se recibe su fecha de inicio y de fin. create function ventaentrefechas (@fecha+ date,@fecha; date) returns table as return (select sum(vinumepasa7ero *vivalopasa7 ) as 6enta9echa from 6ia7es here vifechvia7e<=@fecha+ and vifechvia7e =@fecha;)
Usando la base de datos Lubriservicios: 1.
Crear una función a la que, dada la placa de un vehículo, retorne el total pagado por servicios prestados.
create function servicio (@placa varchar(+0)) returns table as return( select sum(mo6alor) as 5otalagado from 3ovimientos here molaca =@placa)
2.
Función que retorne el historial de servicios prestados a un vehículo, dada su placa y mes.
create function servicio3es (@placa varchar(+0),@fecha date) returns table as return( select sum(mo6alor) as 5otalagado from 3ovimientos here molaca=@placa and mo9ech3ovi=@fecha )