SQL Server - Guarda los datos de un select que me devuelve un conjunto de datos

   
Vista:

Guarda los datos de un select que me devuelve un conjunto de datos

Publicado por Juan Mauricio jmarango@gmail.com (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

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
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

Guarda los datos de un select que me devuelve un conjunto de datos

Publicado por Isaias (3186 intervenciones) el 24/05/2014 01:54:17
No me queda claro tu código, di en PALABRAS que deseas hacer
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
Imágen de perfil de Wilfredo Patricio Castillo

Guarda los datos de un select que me devuelve un conjunto de datos

Lo peor que puedes hacer es pensar en un cursor. hay alternativas muchísimo mejores que un cursor, y eso cualquier otra persona te lo va a decir no uses cursores.
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