Modelo finca - Crear un procedimiento que reciba como parámetro un código de lote y la fecha
Publicado por Juanjo (1 intervención) el 23/05/2016 01:31:24
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 master;
create database finca;
use finca;
create table cultivo(
id_cultivo int,
nombre varchar(50),
constraint pk_cultivo primary key (id_cultivo)
);
create table variedad(
id_variedad int,
nombre varchar(50),
id_cultivo int,
constraint pk_variedad primary key (id_variedad),
constraint fk_variedada_cultivo foreign key (id_cultivo) references cultivo(id_cultivo)
);
create table lote(
id_lote int,
largo float,
ancho float,
area float,
fecha_inicio int,
densidad float,
id_variedad int,
constraint pk_lote primary key (id_lote),
constraint fk_lote_variedad foreign key (id_variedad) references variedad(id_variedad)
);
create table etapa_fenologica(
id_etapa_fenologica int,
nombre varchar(50),
descripcion varchar(50),
duracion int,
orden int,
id_cultivo int,
constraint pk_etapa_fenologica primary key (id_etapa_fenologica),
constraint fk_etapa_fenologica_cultivo foreign key (id_cultivo) references cultivo(id_cultivo)
);
create table tipo_fertilizante(
id_tipo_fertilizante int,
nombre varchar(50),
constraint pk_tipo_fertilizante primary key (id_tipo_fertilizante)
);
create table fertilizante(
id_fertilizante int,
id_tipo_fertilizante int,
nombre varchar(50),
constraint pk_fertilizante primary key (id_fertilizante),
constraint fk_fertilizante_tipo foreign key (id_tipo_fertilizante) references tipo_fertilizante(id_tipo_fertilizante)
);
create table fertilizante_cultivo(
id_fertilizante int,
id_cultivo int,
dosis float,
constraint pk_fertilizante_cultivo primary key (id_fertilizante,id_cultivo),
constraint fk_fert_cul_fer foreign key (id_fertilizante) references fertilizante(id_fertilizante),
constraint fk_fert_cul_cul foreign key (id_cultivo) references cultivo(id_cultivo)
);
/* datos */
insert into cultivo values(1,'Tomate');
insert into cultivo values(2,'Mango');
insert into cultivo values(3,'Cafe');
insert into variedad values (1,'Tomate de cosina',1);
insert into variedad values (2,'Tomate manzano',1);
insert into variedad values (3,'Mango tommy',2);
insert into variedad values (4,'Mango irwin',2);
insert into variedad values (5,'Arabica',3);
insert into variedad values (6,'Robusta',3);
-- etapas fenologicas del tomate (total dias 205)
insert into etapa_fenologica values (1,'Establecimiento','',30,1,1);
insert into etapa_fenologica values (2,'Crecimiento vegetativo','',35,2,1);
insert into etapa_fenologica values (3,'Floracion','',40,3,1);
insert into etapa_fenologica values (4,'Desarrollo del fruto','',45,4,1);
insert into etapa_fenologica values (5,'Inicio cosecha','',30,5,1);
insert into etapa_fenologica values (6,'Plena cosecha','',25,6,1);
-- etapas fenologicas del mango (total dias 360)
insert into etapa_fenologica values (7,'Brotamiento','',30,1,2);
insert into etapa_fenologica values (8,'Floracion','',60,2,2);
insert into etapa_fenologica values (9,'Cuajado','',30,3,2);
insert into etapa_fenologica values (10,'Desarrollo fruto','',150,4,2);
insert into etapa_fenologica values (11,'Maduracion y cosecha','',90,5,2);
-- etapas fenologicas del cafe (total dias 390)
insert into etapa_fenologica values (12,'Hinchazon de yemas','',60,1,3);
insert into etapa_fenologica values (13,'Brote floral','',120,2,3);
insert into etapa_fenologica values (14,'Floracion','',60,3,3);
insert into etapa_fenologica values (15,'Fructificacion','',60,4,3);
insert into etapa_fenologica values (16,'Maduracion','',60,5,3);
-- lotes con tomate
insert into lote values (1,10,10,100,15,20,1);
insert into lote values (2,9,8,72,20,20,1);
insert into lote values (3,10,10,100,35,20,2);
insert into lote values (4,10,10,100,35,25,2);
-- lotes con mango
insert into lote values (5,10,10,100,25,20,3);
insert into lote values (6,20,20,400,25,20,3);
insert into lote values (7,21,10,100,25,20,4);
-- lotes con cafe
insert into lote values (8,10,10,100,15,20,5);
insert into lote values (9,15,10,100,15,20,5);
insert into lote values (10,10,10,100,15,20,5);
insert into lote values (11,10,10,100,15,20,6);
insert into lote values (12,10,10,100,15,20,6);
Cuestion
Crear un procedimiento almacenado que reciba como parámetro un código de lote y la fecha (un numero entero)
y retorne la etapa fenológica en la que se encuentra ese lote. La fecha que se envia es siempre mayor a la fecha de inicio del lote.
notar que un order by no puede estar dentro de una subconsulta; en otras palabras la si la consulta
anterior su pone en una subconsulta no debe de llevar el order by
Valora esta pregunta


0