[firebase-br] Replicar registro conforme campo QUANTIDADE

Luciano Griep lucianogriep em gmail.com
Sexta Setembro 11 18:36:24 -03 2020


Ou como procedure

SET TERM ^ ;
create or alter procedure IMPRESSAO_ETIQUETAS (
    ID_PRODUTO integer)
returns (
    DATA date,
    PRODUTO varchar(50),
    QUANT numeric(15,2),
    VALOR numeric(15,2))
as
declare variable REPETE integer;
begin
   FOR
       SELECT COMPRA.DATA,
              COMPRA.PRODUTO,
              COMPRA.QUANT,
              COMPRA.VALOR
         FROM COMPRA
        WHERE COMPRA.CODIGO_PRODUTO = :ID_PRODUTO
         INTO :DATA,
              :PRODUTO,
              :QUANT,
              :VALOR
   DO
   BEGIN
     REPETE = 0;
     IF (:QUANT > 0) THEN
     BEGIN
       WHILE (REPETE < :QUANT) DO
       BEGIN
         REPETE = REPETE + 1;
         SUSPEND;
       END
     END
   END
end^
SET TERM ; ^

Olá, amigos.
>
> Preciso de uma consulta que mostre cada registro várias vezes, conforme o
> campo "quantidade" na tabela.
>
> Exemplo:
>
> TABELA: COMPRA
> DATA  PRODUTO QUANT VALOR
> 05/SET BALDE   3      125,00
> 10/SET BALDE   2      130,00
>
> CONSULTA: Mostrar uma linha (registro) para cada quantidade na tabela
> COMPRA
> DATA PRODUTO  VALOR
> 05/SET BALDE  125,00
> 05/SET BALDE  125,00
> 05/SET BALDE  125,00
> 10/SET BALDE  130,00
> 10/SET BALDE  130,00
>
> Tentei algo com a função RECURSIVE, mas não consegui resolver ainda.
> Alguém pode me dar uma luz?
>
> Muito obrigado
> []
> Fernando
> fernandotoosp em gmail.com
>
>


Mais detalhes sobre a lista de discussão lista