Operar con rango registros DMax Access

Estoy intentando, en una consulta, restar al registro actual, el mayor de los últimos 6.

Me explico un poco más.
Una tabla de pacientes, numerados en su campo clave del 1 al 50 y otra con sus pesos mensuales, codificado el campo clave de con 4 digitos, los dos primeros el paciente, y los dos últimos el mes. O sea,
0101 Paciente 1, peso enero
0102 Paciente 1, peso febrero
...
0201 Paciente 2, peso enero
...
Quiero detectar la mayor pérdida de peso durante los últimos 6 meses.

Tengo creada en un campo de consulta la siguiente expresión:

Diff: [Peso]-DMax("[Peso]","Tablapesos","[P_ID]>=" & "[P_ID]-6")

Donde P_ID es el campo clave de la tabla pesos, definido arriba.

Pero por más que cambio las comillas y los corchetes bien obtengo el valor de hace 6 meses o error de sintaxis.

1 respuesta

Respuesta
2

¿Así probaste: Diff: [Peso]-DMax("[Peso]","Tablapesos","[P_ID]>=" & [P_ID]-6)?

Esa sería la sintaxis correcta.

Hola, muchas gracias por la respuesta.

Si, así lo tengo ahora mismo, pero me devuelve la diferencia con el valor máximo de toda la columna.

Hola, gracias por responder.
Si, así lo tengo ahora mismo, pero me devuelve la diferencia con el valor máximo de toda la columna, no del rango que quiero.

Un saludo

Pues eso es que tienes mal la condición de DMax.

Intenta restringiendo más la búsqueda:

Diff: [Peso]-DMax("[Peso]","Tablapesos","[P_ID]>=" & [P_ID]-6 & " AND [P_ID]<=" & [P_ID])

Como comentario adicional, creo que no tienes bien estructurada la tabla con los pesos, pues no tienes en cuenta el año en que haces el pesaje, con lo que, a menos que sobreescribas los pesos, tendrás dos registros con la clave 0101, uno para el año 2016 y otro para el 2017, que no puedes identificar correctamente, ni sé si te permitirá tu tabla tener dos claves iguales.

Otro problema es cómo calculas la diferencia de meses: si estás en el mes 3 (registro 0103), por lo que comentas no puedes saber los pesos de los 6 meses anteriores, solo de los 3, porque 0112>0103.

Mil gracias! La fórmula funciona perfecta así.

En cuánto a lo de los meses, así es, tienes razón, tengo que intercalar los dos últimos digitos del año en el campo ID, pero como empecé a registrar los pesos en enero y aún estamos a mitad de año, de momento me funciona.
Gracias de nuevo, un saludo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas