SQL Server - Tabla como parametro

   
Vista:

Tabla como parametro

Publicado por Ignacio M (7 intervenciones) el 03/07/2008 17:45:38
Hola a todos,

Tengo una base de datos en SQL Server 2000 en donde tengo tablas como por ejemplo: DIARIO_05, DIARIO_06, DIARIO_07... Dentro de estas tablas tengo inversiones desglosadas por productos. Ahora bien, estoy creando una aplicacion en VB 6 en donde lleno una plantilla de excel a partir de estos datos que vendrian a ser historicos. Mi pregunta es, ¿Como puedo recorrer las tablas DIARIO_05, DIARIO_06, DIARIO_07...n no sin antes haber sacado las inversiones de los productos que me interesan en cada una de ellas?

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

RE:Tabla como parametro

Publicado por pacopaz (131 intervenciones) el 03/07/2008 18:02:35
Entiendo que tengas estas tablas, y entiendo que quieres hacer operaciones en ellas, lo que no entiendo es si las puedes hacer desde vb o las necesitas hacer desde sql server. Otra cosa que no entiendo es que tipo de operaciones quieres hacer.
Si puedes hacer las operaciones desde vb, la solución es un query, si las quieres hacer desde sql, deberás formar un store procedure, pero dependiendo de las operaciones, deberá ser la lógica para programar el sp.

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

RE:Tabla como parametro

Publicado por Ignacio M (7 intervenciones) el 03/07/2008 22:17:47
OK, lo puedo hacer por cualquiera de las dos formas: querys desde VB o en SQL Server. Lo que no tengo claro es lo siguiente:
A medida que pasa un año se crea otra tabla DIARIO_AA donde AA=año, y logicamente deberia sacar las inversiones agrupadas por marcas para mostrar el historicos, es decir, todas las demas tablas restantes: DIARIO_03, DIARIO_04,... DIARIO_NN.

Si lo quiero hacer desde VB, como le digo a traves del query desde que tabla hacerlo o como recorrer todas estas tablas?
3 mes tinyint 1 0
2 anio numeric 9 0
0 inversion decimal 9 1
0 volumen decimal 9 1
0 cantidad decimal 9 1
2 vehiculo_id numeric 9 0
2 producto_id numeric 9 0
2 forma_id numeric 9 0

Esta es la estructura, si deseo sacar la inversion de un producto agrupada por este campo, lo hago asi:

select sum(inversion), producto_id from DIARIO_03 group by producto_id

Ahora como le digo que me saque la del DIARIO_04 dentro de un bucle?
Como paso la tabla en el select desde VB al sql server?
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

RE:Tabla como parametro

Publicado por pacopaz (131 intervenciones) el 03/07/2008 23:00:10
Pues es más fácil hacerlo desde vb, sin duda, lo que tienes que hacer es traer una conexión, un command y un recordset desde ado, para hacerlo.
En las referencias, agrega Microsoft ActiveX Data Objects 2.8 Library
Luego, en algún procedimiento en vb:

Dim con As ADODB.Connection
Dim com As ADODB.Command
Dim rst As ADODB.Recordset
Dim qry As String
Dim a, aI, aF As Integer

aI = 3
aF = 7

Set con = New ADODB.Connection
con.Open "<<Aquí pones el string de conexión a tu base de datos>>"
Set com = New ADODB.Command
com.ActiveConnection = con
For a = aI To aF
qry = "select "& Format(a, "00") & ", sum(inversion), producto_id from DIARIO_" & Format(a, "00") & " group by producto_id"
Set rst = New ADODB.Recordset
com.CommandText = qry
rst = com.Execute
If rst.RecordCount > 0 Then
<<Aquí tomas acciones con los datos obtenidos en tu recordset
End If
rst.Close
Set rst = Nothing
Next a
Set com = Nothing
con.Close
Set con = Nothing

Donde aI es el año inicial y el aF es el año final.
Espero que te sirva.

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

RE:Tabla como parametro

Publicado por Ignacio M (7 intervenciones) el 04/07/2008 01:25:24
Gracias Pacopaz, muy amable de tu parte
Voy y lo pruebo

Saludos,

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