Select no Execute Block utilizando Union All

30/06/2022

0

Boa tarde, estou utilizando o FireBird 2.5 no IBExpert.

Preciso realizar uma consulta SQL no execute blocks utilizando as tabelas "Contas_Recebe" e "Contas_Pagar". Mas tô com dificuldades porque os dalos dos valores nominais dessas duas tabelas estão retornando na mesma coluna e eu preciso que me retornem separados, conforme print seguinte: https://prnt.sc/WsDLSKmKNifq

Atualmente meu código se encontra assim
execute block

returns ("Mês" varchar(15), r_valorCR numeric(15,2),r_valorCP numeric(15,2), r_saldo numeric (15,2), r_tipo varchar(10))

as
declare variable vRecebe numeric (15,2);
declare variable vRecebido numeric (15,2);
declare variable vPaga numeric(15,2); 
declare variable meses varchar(15);
begin
    for
        select extract (month from cr.data_emissao), sum(cr.valor_aberto)vRecebe, 'CR'"TIPO"

        from contas_receber cr
        where cr.status = 'A'
        group by extract (month from cr.data_emissao)

union all

        select extract (month from cp.data_emissao),sum(cp.valor_aberto)vPaga, 'CP'"TIPO"

        from contas_pagar cp
        where cp.status = 'A'
        group by extract (month from cp.data_emissao)
        order by 1
        into "Mês", r_valorCR, r_tipo

    do
        begin


        if ("Mês" = '1') then
          "Mês" = 'Janeiro';
  
      if ("Mês" = '2') then
          "Mês" = 'Fevereiro';

      if ("Mês" = '3') then
          "Mês" = 'Março';

      if ("Mês" = '4') then
          "Mês" = 'Abril';

      if ("Mês" = '5') then
          "Mês" = 'Maio';

      if ("Mês" = '6') then
          "Mês" = 'Junho';

      if ("Mês" = '7') then
          "Mês" = 'Julho';

      if ("Mês" = '8') then
          "Mês" = 'Agosto';

      if ("Mês" = '9') then
          "Mês" = 'Setembro';

      if ("Mês" = '10') then
          "Mês" = 'Outubro';

      if ("Mês" = '11') then
          "Mês" = 'Novembro';

      if ("Mês" = '12') then
          "Mês" = 'Dezembro';
         r_saldo = r_valorCR - r_valorCP; 
    suspend;
        end


end



Segue o print do resultado da minha consulta SQL utilizando o código atual: https://prnt.sc/AsZSyMr2gyea
Renato Akira

Renato Akira

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar