SQL Server - Modelo finca - Crear un procedimiento que reciba como parámetro un código de lote y la fecha

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modelo finca - Crear un procedimiento que reciba como parámetro un código de lote y la fecha

Publicado por Isaias (4558 intervenciones) el 24/05/2016 00:02:39
¿Y tu duda consiste en como hacer el PROCEDIMIENTO?

inicia con tu query y conforme vayas teniendo dudas, las vamos resolviendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar