Select no Execute Block utilizando Union All

SQL

Banco de Dados

SELECT

IBExpert

Firebird

30/06/2022

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

Curtidas 0
POSTAR