Access - Crear Rangos de particion

 
Vista:
Imágen de perfil de fucken
Val: 6
Ha aumentado su posición en 9 puestos en Access (en relación al último mes)
Gráfica de Access

Crear Rangos de particion

Publicado por fucken (4 intervenciones) el 02/04/2019 23:56:06
Hola buen dia me gustaria crear un rango de particion de una tabla tomando los datos de otra
ejemplo:

Tabla1
Monto | Rango_Monto
1000 | ' A calcular'
1355 | A calcular'
1244 | A calcular'
232 | A calcular'
334 | A calcular'

Tabla_Rangos
cod | Monto_Max | Nombre Rango
1 | 100 | Desde 0 hasta 100
2 | 500 |desde 101 hasta 500
3 | 2000 | desde 501 hasta 2000
4 | 5000 | desde 2001 hasta 5000
5 | X | Mayor a 5000

Resultado

Tabla1
Monto | Rango_Monto
1000 | Desde 501 hasta 2000
1355 | Desde 501 hasta 2000
1244 | Desde 501 hasta 2000
232 | Desde 0 a 100
334 | Desde 101 hasta 500

Los montos maximos de los rangos pueden ir variando , me gustaria que mediante un consulta udapte poder actualizarlo cuando se actualizen.

Hay una funcion partiticion en access pero solo es para rangos fijos.

Alguna ayuda sobre como podria hacerlo , gracias de antemano
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

Crear Rangos de particion

Publicado por Anonimo (3316 intervenciones) el 03/04/2019 02:45:17
RangoCalculado = 1 + ABS((monto > 100) + (monto > 500) + (monto > 2000) + (monto > 5000))


Ya calculado el rango se puede obtener la descripción que corresponda de la tabla rangos


Como funciona:

En una comparacion Access devuelve un 0 si es falso y un (-1) si es true, la función ABS devuelve el valor absoluto (no tiene en cuenta el signo)


Si ponemos un ejemplo para cada rango: 58, 221, 1546, 3841, 7000


58: 1 + ABS((58 > 100) + (58 > 500) + (58 > 2000) + (58 > 5000)) >> 1 + ABS((0) + (0) + (0) + (0)) ==> 1 + 0 = 1
221: 1 + ABS((221> 100) + (221> 500) + (221> 2000) + (221> 5000)) >> 1 + ABS((-1) + (0) + (0) + (0)) ==> 1 + 1 = 2
1546: 1 + ABS((1546> 100) + (1546> 500) + (1546> 2000) + (1546> 5000)) >> 1 + ABS((-1) + (-1) + (0) + (0)) ==> 1 + 2 = 3
3841: 1 + ABS((3841> 100) + (3841> 500) + (3841> 2000) + (3841> 5000)) >> 1 + ABS((-1) + (-1) + (-1) + (0)) ==> 1 + 3 = 4
7000: 1 + ABS((7000> 100) + (7000> 500) + (7000> 2000) + (7000> 5000)) >> 1 + ABS((-1) + (-1) + (-1) + (-1)) ==> 1 + 4 = 5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar