Autor Tema: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008  (Leído 8899 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juancho056

  • PIC10
  • *
  • Mensajes: 35
Hola Buen Dia para todos.

Tengo una duda, ¿por casualidad existen funciones en visual basic 6 que  permitan calcular la media, la desviación estándar y la varianza, de una columna en una tabla almacenada en sql server 2008?

Lo tengo implementado manualmente leyendo un DataGrid pero se vuelve lento la ejecucion de mi programa principal ya que debo hacerlo para varias columnas de la tabla.

Agradesco sus comentarios.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #1 en: 19 de Agosto de 2015, 19:33:15 »
https://msdn.microsoft.com/es-es/library/ms177677(v=sql.120).aspx

En ves de usar VB para que te devuelva los valores, directamente no podes pedirle al SQL Server 2008 que te lo calcule ?

Desconectado juancho056

  • PIC10
  • *
  • Mensajes: 35
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #2 en: 19 de Agosto de 2015, 20:12:21 »
Hola KILLERJC. Gracias por responder

No puedo hacerlo directamente desde Sql debido a  que la tabla se actualiza con Visual Basic,   que es mi programa e interfaz.


Por ejemplo para saber la cantidad de registros que tiene la tabla en Sql, este es el comando que empleo desde Visual Basic

RsTable1.RecordCount 'Retorna la cantidad de resgistros que tiene la tabla

Tambien tengo un Datagrid donde puedo ver estos datos y estoy recorriendo las columnas de este asi:

Estoy recorriendo la columna 1 de la tabla, que empieza desde 0, y X es el indice para tomar los valores celda por celda de toda la columna

For x = 0 To .RecordCount - 1       'Retorna la cantidad de resgistros que tiene la tabla
 dato_s1 = Grilla.Columns(1).CellValue(Grilla.GetBookmark(x))
 suma = suma + dato_s1
 .MoveNext
 .Requery
Next
promedio = suma / RsTable1.RecordCount      ' Calculo el promedio o media de los datos

Asi voy leyendo en la columna 1 dato por dato y los sumo, pero entre mas datos mas lento se me pone el programa.

Lo que quiero es saber si existe alguna función que desde visual Basic 6 le diga que tome todos los datos de una columna de una tabla almacenada en Sql server 2008 y saque su desviacion estandar como lo hace excel.

=DESVEST(A1:A21), asi se hace en excel y lo encuentra directamente.

Asi  evitaria que se pause mi programa mientras realice los calculos y la idea seria llamar solo dicha funcion para imprimirla en una etiqueta.

Gracias por sus aportes y espero exita dicha funcion  :?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #3 en: 19 de Agosto de 2015, 20:33:13 »
Si te entiendo pense que usabas el programa de VB6 como una interfaz y que todo el SQL lo manejaba el SQL Server y vos unicamente hacias llamadas al servidor SQL. Por eso pense en esa solucion, que la verdad es la unica que se me ocurre, si tenes SQL tenes que tener un motor SQL, y los cambios y tomar datos se tomarian directamente desde el SQL (a traves de querys). En fin. Realmente yo haria un query para saber lo que necesito. Pero si me decis que asi no esta implementado, entonces no se me ocurre como hacerlo. Asi que a esperar que alguno te salve
« Última modificación: 19 de Agosto de 2015, 20:36:55 por KILLERJC »

Desconectado juancho056

  • PIC10
  • *
  • Mensajes: 35
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #4 en: 19 de Agosto de 2015, 20:51:23 »
Si solo utilizo Sql como plantilla para llenar una tabla de manera ordenada, para luego exportarla a excel, me tocara realizar estos calculos solo al momento de exportarla para que no se me pause constantemente el programa.

Igual, te agradesco mucho (Y)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #5 en: 19 de Agosto de 2015, 21:16:07 »
Y por que la exportas al excel?, No estas usando SQL como db?

Si fuera obligatoriamente exportarlo al excel
Cuando la exportas al excel no podes hacer que una celda tenga la funciones que queres ?.
O necesitas los valores para mostrarlo en el programa ?

Desconectado juancho056

  • PIC10
  • *
  • Mensajes: 35
Re: Media, Desviación Estándar y Varianza en visual basic con datos en Sql 2008
« Respuesta #6 en: 20 de Agosto de 2015, 02:14:19 »
Las tablas en Sql las uso solo como plantilla para que se llenen en orden sin mucho complique  :mrgreen:, simplemente hago la conexion a la base de datos,  defino el nombre de las columnas y se llenan en orden, No tengo que hacer ciclos para almacenar los datos en el orden correspondiente (que ademas me vuelve tambien lento el programa a la hora de exportar) con un Recordset la copio directamente a una hoja de excel y lo hace rapidamente sin interrumpir si quiera el programa.

Exporto a excel porque es una interfaz que supervisa la perforacion de una bobinas de papel y necesito almacenar los valores sensados para cada bobina tratada,  en este solo los almaceno. Como son muchos datos al hacer los calculos recorriendo un datagrid se pausa el programa momentaneamente y pense que podria existir una funcion como en excel que no demora nada en calcularlos tomando solo una columna  asi:

=DESVEST(A1:A150)

La idea si es mostrar Media, varianza y Desvest en la interfaz, pero como son varias columnas el programa se pausaria costantemente.

 

« Última modificación: 20 de Agosto de 2015, 02:24:57 por juancho056 »


 

anything