Fecha Final : .19/06/2018
Hora Inicio: . 2:25 PM
Hora Final: . 3:35 PM
Horas invertidas(Minutos): 70 minutos
Colaboradores: José David Rodríguez , Wilson Lopez
Tipo de labor: Compartido
Actividad: Consultas y modificación de tablas Operación y MovimientoAcciones.
Se realizaron cambios en las tabla Operación y MovimientoAcciones. Los cambios que se realizaron fue que había un FK_Movimiento en la tabla Operacion. Ese campo se eliminó y en lugar de ese campo, se puso en MovimientoAcciones un campo FK_Operacion (ver Tabla MovimientoAcciones y Tabla Operacion).
Al realizar estos cambios en las tablas, deben modificarse las consultas 1 y 3. (Ver Consulta 1, Consulta 3)
Imágenes:
![]() |
| Tabla MovimientoAcciones |
![]() |
| Tabla Operacion |
![]() |
| Consulta 1 |
![]() |
| Consulta 3 |
Apéndice:
- Codigo Tablas modificadas
CREATE TABLE Operacion(
ID INT PRIMARY KEY identity(1,1),
FK_TipoOperacion INT NOT NULL FOREIGN KEY REFERENCES TipoOperacion(ID),
FK_Agente INT NOT NULL FOREIGN KEY REFERENCES Agente(ID),
FK_ClienteCompra INT NOT NULL FOREIGN KEY REFERENCES Cliente(ID),
FK_ClienteVenta INT NOT NULL FOREIGN KEY REFERENCES Cliente(ID),
Fecha DATE NOT NULL,
QAcciones INT NOT NULL,
Total int not null,
Comision int not null,
GananciaVendedor int not null default 0,
Visible CHAR NOT NULL default 'y', CHECK (Visible = 'y' OR Visible = 'n')
)
create table MovimientoAcciones(
ID INT PRIMARY KEY identity(1,1),
FK_ClienteEmisor int not null foreign key references ClienteXEmisor(ID),
FK_Accion int not null foreign key references Accion(ID),
FK_Operacion int not null foreign key references Operacion(ID),
Cantidad int not null default 0,
Precio money not null default 0
)
- Version 1.2 - Consultas - Consulta 1
CREATE PROCEDURE Consulta_1
@emisorDocID int,
@fechaInicio date,
@fechaFin date
AS
BEGIN
IF EXISTS (SELECT * FROM Emisor E, Operacion OP WHERE DocID = @emisorDocID and Op.Fecha>=@fechaInicio and Op.Fecha <= @fechaFin)
BEGIN
SELECT E.Nombre, A.ID, A.PrecioActual,AVG(MA.Precio),COUNT(MA.ID)
FROM Accion A INNER JOIN MovimientoAcciones MA
ON A.ID = MA.FK_Accion INNER JOIN Operacion Op
ON Op.ID = MA.FK_Operacion and A.ID = MA.FK_Accion and Op.Fecha>=@fechaInicio and Op.Fecha <= @fechaFin INNER JOIN Emisor E
ON E.DocID = @emisorDocID and A.FK_Emisor = E.ID
GROUP BY E.Nombre, A.ID, A.PrecioActual
ORDER BY A.PrecioActual
END
ELSE
BEGIN
RETURN -50001 --Alguno de los parámetros no está registrado en la base de datos
END
END
GO
- Versión 3.1 - Consultas - Consulta 3
CREATE PROCEDURE Consulta_3
@fechaInicio date,
@fechaFin date
AS
BEGIN
IF EXISTS (SELECT * FROM Operacion WHERE Fecha>=@fechaInicio and Fecha <= @fechaFin)
BEGIN
SELECT A.NombreEmpresa,A.Codigo,SUM(Op.GananciaVendedor) AS Ganancia
FROM Accion A
INNER JOIN MovimientoAcciones MA ON A.ID = MA.FK_Accion
INNER JOIN Operacion Op ON OP.ID = MA.FK_Operacion and OP.Fecha>=@fechaInicio and Op.Fecha <= @fechaFin
GROUP BY A.NombreEmpresa,A.Codigo
ORDER BY Ganancia DESC
END
END
GO
Fuente:
Conocimiento adquirido




No hay comentarios.:
Publicar un comentario