versión 3
REDUCE SELECTION ({tabla; }Numero)
Parámetro | Tipo | Descripción | |
tabla | Tabla | Tabla de la cual reducir la selección, o | |
Tabla por defecto, si se omite | |||
Numero | Numérico | Número de registros a conservar seleccionados |
Descripción
REDUCE SELECTION crea una nueva selección de registros para tabla. El comando devuelve el primer número de registros de la selección actual de tabla. REDUCE SELECTION se aplica a la selección actual de tabla en el proceso actual. El primer registro de la nueva selección actual es el registro actual.
Nota: Si la se ejecuta la instrucción REDUCE SELECTION(0), no hay más selección ni registro actual en tabla.
Ejemplos
El siguiente ejemplo busca las estadísticas correctas para una competencia mundial entre los distribuidores de más de 20 países. Por cada país, los 3 mejores distribuidores que han vendido más de $50 000 de productos están entre los 100 mejores distribuidores en el mundo y reciben un premio. Con unas pocas líneas de código, esta petición compleja se puede ejecutar utilizando búsquedas indexadas:
CREATE EMPTY SET([Distribuidores];"Ganadores") ` Crear un conjunto vacío SCAN INDEX([Distribuidores]Cantidad ventas;100;<) ` Buscar desde el final del índice CREATE SET([Distribuidores];"100 mejores distribuidores") ` Colocar los registros seleccionados en un conjunto For ($Pais;1;Records in table([Paises])) ` Por cada país ` Buscar los distribuidores en este país QUERY([Distribuidores];[Distribuidores]País=[Países]Nombre;*) ` ...que vendieron más de $50 000 QUERY(&;[Distribuidores];[Distribuidores]Cantidad ventas>=50000) CREATE SET([Distribuidores];"DistribuidoresGanadores") ` Colocarlos en un conjunto ` Deben estar en el gurpo de los 100 mejores distribuidores INTERSECTION("DistribuidoresGanadores";"100 mejores distribuidores";"DistribuidoresGanadores") USE SET("DistribuidoresGanadores") ` Ganadores potenciales por país ` Ordenarlos por los resultados en orden descendente ORDER BY([Distribuidores];[Distribuidores]Cantidad ventas;<) REDUCE SELECTION([Distribuidores];3) ` Tomar los tres mejores distribuidores CREATE SET([Distribuidores];"DistribuidoresGanadores") ` Ganadores por país ` Colocarlos en la lista de ganadores por país UNION("DistribuidoresGanadores";"Ganadores";"Ganadores") End for CLEAR SET("100 mejores distribuidores") `No necesitamos más este conjunto CLEAR SET("DistribuidoresGanadores") ` No necesitamos más este conjunto USE SET("Ganadores") ` Acá tiene los ganadores CLEAR SET("Ganadores") ` No necesitamos más este conjunto OUTPUT FORM([Distribuidores];"Carta de ganadores") ` Seleccionar la carta PRINT SELECTION([Distribuidores]) ` Imprimir las cartas
Ver también
Conjuntos, ORDER BY, QUERY, SCAN INDEX.