Taller Procedimientos Almacenados 1

Embed Size (px)

Citation preview

  • 8/8/2019 Taller Procedimientos Almacenados 1

    1/3

    CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LAINFORMACION

    ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION

    Fecha:octubre/2010

    PROCEDIMIENTOS ALMACENADOS 1

    Redacte las sentencias SQL para crear los procedimientos almacenados para lossiguientes planteamientos:

    Usando la base de datos Terminal

    1. Procedimiento almacenado (Store Procedure) para consultar los datos delltimo viaje registrado.Crelo as:

    use Terminalgo

    Createprocedure ConsultarViaje -- crea el SP, con un nombreAs--inicia la instruccin de la consultaselecttop 1 * -- creamos la sentencia sql de normalfrom viajesorderby vi_fechviaje descgo-- finaliza la instruccin, en este caso la creacion del SP

    Prubelo as:

    sp_executesql ConsultarViaje

    -- se utiliza la instruccinsp_executesql seguida del nombre del SP

    2. La empresa quiere premiar al conductor que mas cantidad de viajes ha hecho,para lo cual, requiere ver el nombre del conductor y la direccin del mismo parapoder enviar el premio a su lugar de residencia.

    3. La empresa va a sacar de circulacion los buses que hayan sido fabricadosantes de 1995 siempre y cuando la cantidad de viajes realizados supere los 60,para confirmar la informacion desean ver la placa, la fecha de fabricacion delbus y la cantidad de viajes que ha hecho.

    Usando la base de datos Northwind

    4. El gerente de recursos humanos debe tener disponible la informacin de cualesde sus empleados ya estn pensionados, esto quiere decir que ya cumplieron60 aos, en el procedimiento almacenado, utilice la siguiente sintaxis SQL parahallar la edad.

    DATEDIFF(YEAR,NomColumnaTipoFecha,GETDATE())

    La funcin DATEDIFF permite obtener el valor que resulta de extraer una delas partes que compone un dato de tipo fecha. Se contina la sintaxis

    agregando, entre parntesis y separando con coma, la parte que se deseaobtener (ao, mes da), se agrega ahora el nombre de la columna con fecha

    Elaborado por: Instructora Sandra Yanneth Rueda GuevaraSENA - rea de Teleinformtica

  • 8/8/2019 Taller Procedimientos Almacenados 1

    2/3

    CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LAINFORMACION

    ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION

    Fecha:octubre/2010

    ms antigua y por ultimo, el nombre del otro campo con el cual se va acomparar; es importante sealar que la funcin GETDATE() permite obtener lafecha actual en la cual se ejecute la sentencia; por lo tanto, es conveniente

    usarla para obtener datos referentes a aniversarios como edad, tiempo deservicio, aos, meses o das transcurridos desde una fecha a otra.Los datos que quiere visualizar el gerente son el nombre completo delempleado y el tiempo de pensionado que lleva.

    5. El rea de recursos humanos debe pasar el reporte anual de cuales desus empleados estn prximos a pensionarse, este reporte muestra el nombrecompleto del empleado y el tiempo de servicio en aos que lleva y el numerode aos que falta para pensionarse, nicamente muestra aquellos que tenganentre 55 y 59 aos de edad y al menos 17 aos de servicio.

    6. El rea de compras requiere generar un reporte diario con los datos de

    los productos que deben pedir; para ello quieren visualizar el nombre delproducto, precio unitario, el precio promedio en ventas y la diferencia entre elprecio unitario y el precio promedio en ventas, todo esto siempre y cuando elproducto no se encuentre descontinuado.

    7. Ejecute la siguiente sentencia SQL y observe lo que sucede :

    DECLARE@codigo CHAR(5),@compras money

    SET @codigo ='AROUT'SET @compras =(

    SELECTSUM(Quantity*UnitPrice)FROM Orders O innerjoin [order Details] ODON O.OrderID = OD.OrderIDWHERE CustomerID = @codigo)

    PRINT ('Total de compras:'+ STR(@compras))

    En los procedimientos almacenados, es usual utilizar variables que vengandesde programas conectados al servidor de la base de datos; por lo tanto,debemos declarar las variables que nos recibirn los datos para que se puedancomparar con los de la base de datos.

    FUNCION OBJETIVO SINTAXIS

    DECLARENos permite declarar las diferentesvariables, es necesario anteponer elsmbolo @ al nombre de la variabley acompaarla con su tipo de dato

    DECLARE @NomVariableTipo de dato(longitud) paralos datos de tipo caracter

    SET Inicializa las variables, para que las

    podamos usar.

    SET @NomVariable = valor

    PRINT Permite imprimir PRINT(@NomVariable)

    Elaborado por: Instructora Sandra Yanneth Rueda GuevaraSENA - rea de Teleinformtica

  • 8/8/2019 Taller Procedimientos Almacenados 1

    3/3

    CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LAINFORMACION

    ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION

    Fecha:octubre/2010

    STR() Para imprimir concatenando textocon variable

    PRINT ('Total de comprasdel cliente:' +STR(@compras))

    8. Redacte la sentencia que permita ver en pantalla el monto total deventas del empleado con cdigo 8 durante el ao 1997 y la diferencia entre elmonto total de ventas del mismo empleado menos lo que vendi en 1997.

    Se sugiere declarar tres variables para distribuirlas as:

    1. Llamar el cdigo del empleado2. Almacenar la ventas del ao 19973. Almacenar la diferencia entre el total vendido menos lo vendido en 1997

    Elaborado por: Instructora Sandra Yanneth Rueda GuevaraSENA - rea de Teleinformtica