-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcl3II.sql
121 lines (98 loc) · 3.23 KB
/
cl3II.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
use Pesca
go
select * from Producto
create table TransaccionesProducto(
fecha_transaccion datetime,
tipotransaccion varchar(30),
usuarioresponsable varchar(30),
registronuevo varchar(255),
registroantiguo varchar(255),
equipohizooperacion varchar(30)
)
go
create trigger tr_transaProducto
on dbo.producto
for insert , delete , update
as
begin
Declare @v_tipoTransaccion varchar(max),
@v_newRecord varchar(max), @v_olRecord varchar(max)
if exists (select * from inserted) and exists (select * from deleted)
begin
set @v_tipoTransaccion='Actualizacion de Datos'
set @v_newRecord=(select Codigo_Pro+space(1)+Descripcion_Pro+space(1)+Tipo_Pro+space(1)+cast(Precio_Pro as varchar(20))+space(1) from inserted)
set @v_olRecord=(select Codigo_Pro+space(1)+Descripcion_Pro+space(1)+Tipo_Pro+space(1)+cast(Precio_Pro as varchar(20))+space(1) from deleted)
end
else if exists (select * from inserted)
begin
set @v_tipoTransaccion='Insercion de registro'
set @v_newRecord=(select Codigo_Pro+space(1)+Descripcion_Pro+space(1)+Tipo_Pro+space(1)+cast(Precio_Pro as varchar(20))+space(1) from inserted)
set @v_olRecord=null
end
else
begin
set @v_tipoTransaccion='Eliminacion de Registro'
set @v_newRecord=null
set @v_olRecord=(select Codigo_Pro+space(1)+Descripcion_Pro+space(1)+Tipo_Pro+space(1)+cast(Precio_Pro as varchar(20))+space(1) from deleted)
end
insert into TransaccionesProducto
values
(GETDATE(), @v_tipoTransaccion,USER_NAME(),@v_newRecord, @v_olRecord,HOST_NAME())
end
go
select * from TransaccionesProducto
select * from dbo.Producto
update Producto
set Descripcion_Pro='ATUN'
where Codigo_Pro='p03'
go
------------------------------
create or alter function dbo.fntablaFaena001(@p_Empl char(3))
returns table
as
return(select p.Codigo_Emp,p.Nombre_Emp,f.Numero_Fae,f.FecIni_Fae,f.FecFin_Fae,f.ZonaMar_Fae from Empleado p join dbo.Barco B on p.Codigo_Bar=b.Codigo_Bar
join Faena f on b.Codigo_Bar=f.Codigo_Bar
where p.Codigo_Emp=@p_Empl)
go
select * from Empleado
select * from [dbo].[Barco]
select * from Faena
select * from dbo.fntablaFaena001('E05')
go
---------------------------------------------------
create or alter procedure limaBarco
as
begin
select p.Codigo_Bar,p.Nombre_Bar,p.Capitan_Bar,p.Tipo_Bar,
case
when p.Tipo_Bar=1 then 'Lancha' --then = entonces
when p.Tipo_Bar>1 then 'No accecible' --then = entonces
end as [Accecibilidad]
from Barco p
end
go
select * from Empleado
execute limaBarco
------------------------------------------
select * from Empleado
declare curSalePerson cursor for select p.Codigo_Emp+space(1)+p.Nombre_Emp+space(1)+p.FecIng_Emp+space(1)+p.HabBasico_Emp
from Empleado p
group by p.Codigo_Emp+space(1)+p.Nombre_Emp+space(1)+p.FecIng_Emp+space(1)+p.HabBasico_Emp
declare @v_monto decimal
open curSalePerson
fetch curSalePerson into @v_monto
while @@FETCH_STATUS=0
begin
if @v_monto <=500
set @v_monto=(@v_monto-(@v_monto*0.075))
else if @v_monto >=501
set @v_monto=(@v_monto-(@v_monto*0.1))
else if @v_monto >750
set @v_monto=(@v_monto-(@v_monto*0.125))
print 'Total Facturado: '+cast(@v_monto as varchar(20))
print replicate ('*',50)
fetch curSalePerson into @v_monto
end
close curSalePerson
deallocate curSalePerson
go