none
Necesito paginar con la sentencia top haciendo una subconsulta RRS feed

  • Pregunta

  • Hola. 

    Necesito hacer una paginación y tengo que utilizar la sentencia TOP 

    mi base de datos no cuenta con ID, no tiene pk, porque son datos generados por un plc de un archivo .log q pasa a .dbf 

    espero puedan darme una idea 

    los campos 

    son date tipo fecha, time(que viene por defecto en tipo tiempo), marker(tipo texto toma el valor E), value(tipo texto t° de la muestra)

    necesito tomar 4 muestras cada 30 filas, 

    espero su ayuda :)

     

     

    • Cambiado Enrique M. Montejo miércoles, 28 de marzo de 2012 15:51 acceso a datos (De:Lenguaje VB.NET)
    jueves, 19 de enero de 2012 19:49

Todas las respuestas

  • y si lo haces en memoria

    o sea carga todo y luego con un DataView o si te animas con linq filtras

     

    necesito tomar 4 muestras cada 30 filas,

    las columnas se definen en el SELECT estas no se toman

    lo que filtras son las filas, de 30 en 30, no entiendo porque quieres tomar de a 4 columans cuando esto es fijo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 19 de enero de 2012 19:56
  • no necesito tomar las 4 filas, sino que necesito paginar de tal manera que cada 30 filas me muestre 4 y luego se salte 30 mas y muestre las 4 siguiente. es por un patron que siguen los datos y necesito que quede así.

    espero puedan ayudarme.

    se que debe ser con TOP y cn una subconsulta pero, tengo problemas para llevarla a cabo. 

    lunes, 23 de enero de 2012 13:04
  • Hola,

    la solución que se me ocurre si estás utilizando procedimientos almacenados es la siguiente:

    guardar todos los registros en una tabla temporal de sesion (#Tabla). Luego ir recorriendola con un while hasta el final. Dentro del while harías lo siguiente:

     - Generar 2 variables, una puede llamarse "muestras" y la otra "paginar". Ir incrementando las 2 variables en cada pasada del while.

     - Guardar los primeros registros en otra temporal hasta que la variable "muestras" llegue a 4 e ir borrando 1 a 1 hasta que la variable "paginar" llegue a 30.

     - Cuando esto sucede reinicias las 2 variables y comienzas de nuevo.

     - Al final muestras el resultado de la segunda temporal.

     

    Espero te sea de ayuda.

     

    Saludos,

     


    Mariano Llarin.-
    lunes, 23 de enero de 2012 13:36
  • No es un procedimiento alamcenado. es una archivo .dbf que contiene la base de datos. no tiene pk, ni id. nada de eso

    tiene una columna time, esa columna trae tiempo en hora:minutos:segundos. necesito hacer un filtro cada 5 minutos.

    como no sé como hacerlo entre los minutos esperaba poder paginar los datos

     

    lunes, 23 de enero de 2012 15:33