Tengo una agrupacion a una base de datos de 43,000 registros y tarda cerca de 40 segundos en regresarme una agrupacion por dos campos.
Estoy generando en VBasic un QueryDef primeramente con mi consulta:
Set QDF = glbBaseDeDatosAsignada.CreateQueryDef("QueryGroupR eport", CadSql)
QDF.Close
Para despues crear un Shape y que me regrese los registros agrupados:
AdoRst.Open ("SHAPE {SELECT * FROM QueryGroupReport} AS Command1 COMPUTE Command1 BY " & Camp12), Cnn, adUseClient, adLockReadOnly
Donde QueryGroupReport con tiene la cadena "SELECT campos FROM tabla", Cnn es mi conexion y Camp12 contiene el o los campos por los que voy a agrupar
Trate tambien de hacer la agrupacion utilizando la instruccion GROUP BY pero me marca errores.. por ejemplo
Si utilizo el siguiente codigo
Cade = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\Base 3 campos.mdb"
CnnEjemplo.ConnectionString = Cade
CnnEjemplo.Open
With RstEjemplo
.ActiveConnection = CnnEjemplo
.CursorLocation = adUseClient
.LockType = adLockReadOnly
End With
RstEjemplo.Open "Select Indice, Empresa, RubPrincipal from Totales GROUP BY RubPrincipal"
Me marca que "Ha intentado ejecutar una consulta que no incluye la expresion especificada 'Indice' como una parte de una funcion de agregado"
Ojala me pudieran ayudar para saber como acelerar el tiempo que tardan en generarse mis agrupaciones (tomando en cuenta que puede ser cualquier base de datos por lo cual no podria generar ningun tipo de indice)
Muchas gracias por sus amables respuestas.