[firebase-br] Multiplicar o retorno de um SELECT

Paulo Casagrande paulo em sjudas.com.br
Ter Out 16 09:53:41 -03 2007


 > Denis Pereira Raymundo escreveu:

> Uma pergunta: Que situação real teve gerou essa necessidade?

Um gerador de etiquetas aonde 90% da informações
eram repetidas e controladas por um numero sequêncial.

Dá para fazer no gerador ( coisas do tipo ):

if ( REGISTRO = 1 ) and
   ( ParName = 'Destinatário' ) Then
     ParValue := 'Mamãe';
if ( REGISTRO = 2 ) and
   ( ParName = 'Destinatário' ) Then
     ParValue := 'Papai';
if ( REGISTRO = 3 ) and
   ( ParName = 'Destinatário' ) Then
     ParValue := 'Titio';

PS: O exemplo é obra de ficção :)


> "Paulo Casagrande" <paulo em sjudas.com.br> escreveu 
> na mensagem news:fevtbb$k91$1 em ger.gmane.org...
> Bom dia Rubem,
> Obrigado por responder !
> 
> Depois de postar resolvi pensar um pouco... :)
> 
> Chequei na sequinte solução
> (Não analisei totalmente os prós e os contras)
> 
> Criei um SP
> 
> CREATE PROCEDURE MULTIPLICA(NUMERO INTEGER)
> RETURNS(REGISTRO INTEGER)
> AS
> DECLARE VARIABLE vNUMERO INTEGER;
> BEGIN
>    vNUMERO = 0;
>    WHILE ( :vNUMERO < :NUMERO ) DO
>    BEGIN
>      vNUMERO = :vNUMERO + 1;
>      REGISTRO = :vNUMERO;
>      SUSPEND;
>    END
> END
> 
> Depois uso assim:
> 
> Exemplo
> 
> SELECT CLIENTE.*, MULTIPILICA.REGISTRO
> FROM CLIENTE, MULTIPILICA(3)
> WHERE...
> 
> 
> Quanto a sua solução é funcional,
> mas não muito pratica :)
> PS: Eu nunca tinha utilizado com o ALL,
> Obrigado
> 
> T+
> 
> 
>> Com UNION vc resolve. Exemplo:
>>
>> SELECT CODIGO, NOME FROM TABELA
>> UNION ALL
>> SELECT CODIGO, NOME FROM TABELA
>> UNION ALL
>> (.. 'n' vezes ..)
>> UNION ALL
>> SELECT CODIGO, NOME FROM TABELA
>>
>> Não espere coisa mais simples que isso com SELECT pra resolver o seu 
>> problema, pq ñ existe.
>> Sds.
>>
>>> To: lista em firebase.com.br
>>> From: paulo em sjudas.com.br
>>> Date: Mon, 15 Oct 2007 11:08:54 -0300
>>> Subject: [firebase-br] Multiplicar o retorno de um SELECT
>>>
>>> Bom dia a todos...
>>>
>>> Tem com multiplicar o retorno de um SELECT ?
>>>
>>> Tipo:
>>>
>>> SELECT CODIGO, NOME FROM TABELA
>>>
>>> Resultado seria :
>>>
>>> 1 PAULO
>>> 2 JOÃO
>>> 3 MARIA
>>>
>>> Tem como retornar assim: (n vezes)
>>>
>>> 1 PAULO
>>> 1 PAULO
>>> 1 PAULO
>>> 2 JOÃO
>>> 2 JOÃO
>>> 2 JOÃO
>>> 3 MARIA
>>> 3 MARIA
>>> 3 MARIA
>>>
>>> Obrigado





Mais detalhes sobre a lista de discussão lista