Query
Publicado por alberto (9 intervenciones) el 23/11/2015 15:54:35
Hola chicos
Una consulta
Cual es el valor que me devuelve un Query
Por ejemplo este procedimiento, cual vendria a ser el valor que me devuelve?.
Gracias.
Una consulta
Cual es el valor que me devuelve un Query
Por ejemplo este procedimiento, cual vendria a ser el valor que me devuelve?.
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
CREATE PROCEDURE [dbo].[p_carga_cotizarf_mil] @p_fec VARCHAR(10) AS
BEGIN
DECLARE @fecpro AS DATETIME
DECLARE @dd AS VARCHAR(2)
DECLARE @mm AS VARCHAR(2)
DECLARE @aa AS VARCHAR(4)
DECLARE @archivo AS VARCHAR(100)
SET @fecpro = CONVERT(DATETIME, @p_fec, 103)
SET @dd = SUBSTRING(@p_fec, 1, 2)
SET @mm = SUBSTRING(@p_fec, 4, 2)
SET @aa = SUBSTRING(@p_fec, 7, 4)
SET @archivo = dbo.f_descripcion_tabla('FIL', 'MCH_RF', 'D') + dbo.f_descripcion_tabla('FIL', 'MCH_RF', 'A')
SET @archivo = REPLACE(REPLACE(REPLACE(@archivo, 'dd', @dd), 'mm', @mm), 'aaaa', @aa)
SET @archivo = REPLACE(REPLACE(@archivo, 'MONTH', @mm), 'YEAR', @aa)
DELETE FROM con_temp_millennium
DECLARE @strSQL AS VARCHAR(5000)
SET @strSQL = 'BULK INSERT con_temp_millennium'
SET @strSQL = @strSQL + ' FROM ' + CHAR(39) + @archivo + CHAR(39)
SET @strSQL = @strSQL + ' WITH ( ROWTERMINATOR = '+ CHAR(39) + CHAR(10) + CHAR(39) + ' ) '
EXEC(@strSQL)
DECLARE @fecha AS VARCHAR(10)
DECLARE @codigo_valor AS VARCHAR(260)
DECLARE @v_ultima AS VARCHAR(22)
DECLARE @v_rendimiento AS VARCHAR(22)
DECLARE @v_maximo AS VARCHAR(22)
DECLARE @v_minimo AS VARCHAR(22)
DECLARE @v_total AS VARCHAR(18)
DECLARE @fecha_cotizacion AS DATETIME
DECLARE @ultima AS NUMERIC(22,10)
DECLARE @rendimiento AS NUMERIC(22,10)
DECLARE @maximo AS NUMERIC(22,10)
DECLARE @minimo AS NUMERIC(22,10)
DECLARE @total AS NUMERIC(18,2)
DECLARE @existe_valor AS INT
DECLARE @ErrorNumber AS INT
DECLARE c_cot CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
SELECT LTRIM(RTRIM(SUBSTRING(linea, 20, 10))) AS fecha_rueda,
LTRIM(RTRIM(SUBSTRING(linea, 125, 26))) AS codigo_valor,
LTRIM(RTRIM(SUBSTRING(linea, 240, 22))) AS ultima,
LTRIM(RTRIM(SUBSTRING(linea, 321, 22))) AS rendimiento,
LTRIM(RTRIM(SUBSTRING(linea, 776, 22))) AS maximo,
LTRIM(RTRIM(SUBSTRING(linea, 798, 22))) AS minimo,
LTRIM(RTRIM(SUBSTRING(linea, 918, 18))) AS mto_efectivo_pen
FROM con_temp_millennium
WHERE linea != ''
OPEN c_cot
FETCH NEXT FROM c_cot INTO @fecha, @codigo_valor, @v_ultima, @v_rendimiento, @v_maximo, @v_minimo, @v_total
WHILE @@fetch_status = 0
BEGIN
SET @codigo_valor = LTRIM(RTRIM(@codigo_valor))
SET @fecha_cotizacion = CONVERT(DATETIME, LTRIM(RTRIM(@fecha)), 105)
IF @v_ultima IN ('', '0000000000000000000000')
SET @ultima = 0
ELSE
SET @ultima = CONVERT(NUMERIC(38,10), ISNULL(@v_ultima, 0)) / 10000000000
IF @v_rendimiento IN ('', '0000000000000000000000')
SET @rendimiento = 0
ELSE
SET @rendimiento = CONVERT(NUMERIC(38,10), ISNULL(@v_rendimiento, 0)) / 10000000000
IF @v_maximo IN ('', '0000000000000000000000')
SET @maximo = 0
ELSE
SET @maximo = CONVERT(NUMERIC(38,10), ISNULL(@v_maximo, 0)) / 10000000000
IF @v_minimo IN ('', '0000000000000000000000')
SET @minimo = 0
ELSE
SET @minimo = CONVERT(NUMERIC(38,10), ISNULL(@v_minimo, 0)) / 10000000000
IF @v_total IN ('', '000000000000000000')
SET @total = 0
ELSE
SET @total = CONVERT(NUMERIC(38,2), ISNULL(@v_total, 0)) / 100
IF @ultima <> 0
BEGIN
SET @existe_valor = 0
SELECT @existe_valor = 1 FROM con_t_valor WHERE codigo_valor = @codigo_valor
--Inserta Valor de no Existir
IF @existe_valor = 0
BEGIN
INSERT INTO con_t_valor ( codigo_valor, tipo_renta, fecha_cotiza, ultima_cotiza,
estado_valor, mecanismo, valor_inscrito, fecha_inscrito )
VALUES ( @codigo_valor, 'RF', @fecpro, @ultima,
'A', 'S', 'N', @fecpro )
END
ELSE
BEGIN
IF @fecpro = @fecha_cotizacion
BEGIN
UPDATE con_t_valor
SET fecha_cotiza = @fecha_cotizacion,
ultima_cotiza = @ultima
WHERE codigo_valor = @codigo_valor
END
END
SELECT @ErrorNumber = 0
BEGIN TRY
INSERT INTO con_t_cotizacion ( codigo_valor, fecha_cotizacion, ultima_cotizacion, tir_cotizacion,
precio_maximo, precio_minimo, monto_negociado,
ultima_exterior, monto_exterior )
VALUES ( @codigo_valor, @fecha_cotizacion, @ultima, @rendimiento,
@maximo, @minimo, @total,
0, 0 )
END TRY
BEGIN CATCH
SELECT @ErrorNumber = ERROR_NUMBER()
END CATCH
IF @ErrorNumber = 2627
BEGIN
UPDATE con_t_cotizacion
SET ultima_cotizacion = @ultima,
tir_cotizacion = @rendimiento,
precio_maximo = @maximo,
precio_minimo = @minimo,
monto_negociado = @total
WHERE codigo_valor = @codigo_valor
AND fecha_cotizacion = @fecha_cotizacion
END
SET @fecha = NULL
SET @codigo_valor = ''
SET @v_ultima = 0
SET @v_maximo = 0
SET @v_minimo = 0
SET @v_total = 0
SET @v_rendimiento = 0
SET @rendimiento = 0
SET @ultima = 0
SET @maximo = 0
SET @minimo = 0
SET @total = 0
END
FETCH NEXT FROM c_cot INTO @fecha, @codigo_valor, @v_ultima, @v_rendimiento, @v_maximo, @v_minimo, @v_total
END
CLOSE c_cot
DEALLOCATE c_cot
END
Gracias.
Valora esta pregunta


0