4D v14.3REDUCE SELECTION |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
REDUCE SELECTION
|
REDUCE SELECTION ( {tabela ;} numero ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
tabela | Tabela |
![]() |
Tabela para a qual vai reduzir a seleção, ou tabela padrão, se omitido | |||||
numero | Inteiro longo |
![]() |
Número de registros para manter selecionados | |||||
REDUCE SELECTION cria uma nova seleção de registros para tabela. O comando retorna o primeiro numero de registros da seleção atual de tabela. REDUCE SELECTION se aplica à seleção atual de tabela no processo atual. Ele modifica a seleção atual de tabela para o processo atual; o primeiro registro da nova seleção se torna o o registro atual.
Nota: se a instrução REDUCE SELECTION(0) for executada, não haverá mais seleção nem registro atual em tabela.
O seguinte exemplo pesquisa as estatísticas corretas para uma concorrência mundial entre os distribuidores de mais de 20 países. Para cada país, os 3 melhores distribuidores que tenham vendido mais de $50.000 em produtos estão entre os 100 melhores distribuidores do mundo e recebem um prêmio. Com umas poucas linhas de código, esta petição complexa pode ser executada utilizando pesquisas indexadas:
CREATE EMPTY SET([Distribuidores];"Ganhadores") ` Criar um conjunto vazio
&NBSP;SCAN INDEX([Distribuidores]Quantidade vendas;100;<) ` Buscar desde o final do índice CREATE SET([Distribuidores];"100 melhores distribuidores") ` Colocar os registros selecionados em um conjunto
For($Pais;1;Records in table([Paises])) ` Para cada país
` Buscar os distribuidores neste país
QUERY([Distribuidores];[Distribuidores]País=[Países]Nome;*) ` ...que venderam mais de $50.000
QUERY(&;[Distribuidores];[Distribuidores]Quantidade vendas>=50000)
&NBSP;CREATE SET([Distribuidores];"DistribuidoresGanhadores") ` Colocá-los em um conjunto ` Devem estar no grupo dos 100 melhores distribuidores INTERSECTION("DistribuidoresGanhadores";"100 melhores distribuidores";"DistribuidoresGanhadores") USE SET("DistribuidoresGanhadores") ` Ganhadores potenciais por país
&NBSP; ` Ordená-los pelos resultados em ordem descendente
&NBSP;ORDER BY([Distribuidores];[Distribuidores]Quantidade vendas;<)
&NBSP;REDUCE SELECTION([Distribuidores];3) ` Assumir os três melhores distribuidores
&NBSP;CREATE SET([Distribuidores];"DistribuidoresGanhadores") ` Ganhadores por país
&NBSP; ` Colocá-los na lista de ganhadores por país
&NBSP;UNION("DistribuidoresGanhadores";"Ganhadores";"Ganhadores")
&NBSP;End for
&NBSP;CLEAR SET("100 melhores distribuidores") `Não necessitamos mais este conjunto
&NBSP;CLEAR SET("DistribuidoresGanhadores") ` Não necessitamos mais este conjunto
&NBSP;USE SET("Ganhadores") ` Aqui estão os ganhadores
&NBSP;CLEAR SET("Ganhadores") ` Não necessitamos mais este conjunto
&NBSP;OUTPUT FORM([Distribuidores];"Carta de ganhadores") ` Selecionar a carta
&NBSP;PRINT SELECTION([Distribuidores]) ` Imprimir as cartas
Produto: 4D
Tema: Seleção
Número
351
Criado por: < 4D v6
Conjuntos
ORDER BY
QUERY
SCAN INDEX
Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v11 SQL Release 6)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)