
Guarda los datos de un select que me devuelve un conjunto de datos
Publicado por Juan Mauricio (1 intervención) el 23/05/2014 17:26:34
Buenas días
necesito guarda los datos de un select que me devuelve un cursor, pero es un conjunto de datos entonces como recorro la que me devuelve el cursor para insertando
necesito guarda los datos de un select que me devuelve un cursor, pero es un conjunto de datos entonces como recorro la que me devuelve el cursor para insertando
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
DECLARE @Cta VARCHAR(15);
DECLARE @CtaVS VARCHAR(15);
CREATE TABLE #tmpSaldos(
intSucA SMALLINT,
intAno SMALLINT,
intMes SMALLINT,
strCtaPuc VARCHAR(14),
curSaldoInicial MONEY,
curDebito MONEY,
curCredito MONEY
)
DECLARE cCuentas CURSOR GLOBAL FOR
SELECT strPuf_Siesa,strCodigo
FROM
JFK_IRL_conPuc_siesa
OPEN cCuentas
*************Aqui me devuelve 40 registros**********************
WHILE (@@FETCH_STATUS = 0)
BEGIN
FETCH cCuentas INTO @Cta, @CtaVS
*******Aqui recorro los registros uno a uno que me devuelve el cursor*********************
SELECT @tblcurSaldoInicial = sum(t300.f300_inicial)
, @tblcurDebito = sum(t300.f300_debitos)
, @tblcurCredito = sum(t300.f300_creditos)
, @tblintSucA = t300.f300_id_co
, @Ano = substring(convert(VARCHAR(6), t300.f300_periodo), 1, 4)
, @Mes = substring(convert(VARCHAR(6), t300.f300_periodo), 5, 2)
FROM
t300_rc_auxiliar AS t300
INNER JOIN t681_in_auxiliares_bi AS t681
ON t681.f681_rowid_auxiliar = t300.f300_rowid_auxiliar
LEFT OUTER JOIN JFK_IRL_conPuc_siesa
ON t681.f681_id_auxiliar = JFK_IRL_conPuc_siesa.strPuf_Siesa
WHERE
(t300.f300_periodo BETWEEN @Periodo AND @Periodo)
AND (t681.f681_id_auxiliar BETWEEN ltrim(@Cta) AND ltrim(@Cta + 'z'))
GROUP BY
t300.f300_id_co
, t300.f300_periodo
********************con cada registro del cursor ejecuto este select, por cada uno me devuelve 40 registros*************
*******Me esta insertando solo el primer registro, como inserto aquí la segunda colección de datos y regreso a la primera consulta *********************
INSERT INTO #tmpSaldos(intSucA
, intAno
, intMes
, strCtaPuc
, curSaldoInicial
, curDebito
, curCredito)
VALUES
(ltrim(@tblintSucA), ltrim(@Ano), ltrim(@Mes), ltrim(@CtaVS), ltrim(@tblcurSaldoInicial), ltrim(@tblcurDebito), ltrim(@tblcurCredito))
END
select * from #tmpSaldos
CLOSE cCuentas
DEALLOCATE cCuentas
DROP TABLE #tmpSaldos
Valora esta pregunta


0