REDUCE SELECTION

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 3


REDUCE SELECTION ({tabla; }Numero)

ParámetroTipoDescripción
tablaTablaTabla de la cual reducir la selección, o
Tabla por defecto, si se omite
NumeroNuméricoNú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.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente