Documente Academic
Documente Profesional
Documente Cultură
Fecha:
INFORMACION
octubre/2010
ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION
PROCEDIMIENTOS ALMACENADOS 1
Redacte las sentencias SQL para crear los procedimientos almacenados para los
siguientes planteamientos:
Pruébelo así:
sp_executesql ConsultarViaje
-- se utiliza la instrucción
sp_executesql seguida del nombre del SP
DATEDIFF(YEAR,NomColumnaTipoFecha,GETDATE())
más antigua y por ultimo, el nombre del otro campo con el cual se va a
comparar; es importante señalar que la función GETDATE() permite obtener la
fecha actual en la cual se ejecute la sentencia; por lo tanto, es conveniente
usarla para obtener datos referentes a aniversarios como edad, tiempo de
servicio, años, meses o días transcurridos desde una fecha a otra.
Los datos que quiere visualizar el gerente son el nombre completo del
empleado y el tiempo de pensionado que lleva.
DECLARE
@codigo CHAR(5),
@compras money
SOLUCIÓN
use terminal
go
Create procedure Premiar
As
Select top 1 co_nombconduc, co_direconduc, COUNT(co_codiconduc)as
[Numero Viajes]
from Conductores C inner join Viajes V on C.co_codiconduc = V.vi_codiconduc
group by co_nombconduc, co_direconduc
order by COUNT(co_codiconduc) desc
go
sp_executesql Premiar
use terminal
go
As
go
sp_executesql Circulacion
use Northwind
go
Create procedure Pensionados
As
select LastName, FirstName , DATEDIFF(YEAR,BirthDate,GETDATE()) as
Edad,
(DATEDIFF(YEAR,BirthDate,GETDATE())- 60) as [Tiempo Pensionado]
from Employees
where (DATEDIFF(YEAR,BirthDate,GETDATE()))>60
go
sp_Executesql Pensionados
use Northwind
go
Create procedure Prox_Pensiones
As
Select LastName, FirstName, DATEDIFF(YEAR,BirthDate,GETDATE()) as
Edad,
DATEDIFF(YEAR,HireDate,GETDATE())as [Tiempo Servicio], (60
-DATEDIFF(YEAR,BirthDate,GETDATE()) ) as [Tiempo Faltante]
From Employees
where (DATEDIFF(YEAR,BirthDate,GETDATE())) >= 55 and
(DATEDIFF(YEAR,BirthDate,GETDATE())) <= 59 and
DATEDIFF(YEAR,HireDate,GETDATE()) >= 17
go
sp_executesql Prox_Pensiones
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 del producto,
precio unitario, el precio promedio en ventas y la diferencia entre el precio
unitario y el precio promedio en ventas, todo esto siempre y cuando el producto
no se encuentre descontinuado.
USe Northwind
Go
Create Procedure Reporte
as
Sp_executesql Reporte
8. Redacte la sentencia que permita ver en pantalla el monto total de ventas del
empleado con código 8 durante el año 1997 y la diferencia entre el monto total
de ventas del mismo empleado menos lo que vendió en 1997.
DECLARE
@cod int,
@ventas money,
@diferencia money
SET @cod = 8
SET @ventas =(select SUM((OD.UnitPrice * Quantity)-Discount)As Ventas
from Employees E inner join Orders O on E.EmployeeID =
O.EmployeeID
inner join [Order Details]OD on O.OrderID = OD.OrderID
Where E.EmployeeID = 8)
SET @diferencia = (select((SUM ((UnitPrice*Quantity)-Discount))-(select
SUM((OD.UnitPrice * Quantity)-Discount)
from Employees E inner join Orders O on E.EmployeeID =
O.EmployeeID
inner join [Order Details]OD on O.OrderID = OD.OrderID
Where E.EmployeeID = 8) ) From Employees E inner join Orders O on
E.EmployeeID = O.EmployeeID
inner join [Order Details]OD on O.OrderID = OD.OrderID)