CrossTab - Inconsistência no uso de campos auxiliares

Visão Geral

O CrossTab é o componente estilo “Tabela Pivô” do Latromi, onde podemos agrupar valores na intersecção de eixos X (linhas) e Y (colunas).

Este recursos permite usar os campos de Colunas, Linhas e Valores para criar formatações condicionais ou cálculos personalizados de agregação.

Em alguns casos, pode ser necessário usar um campo oculto nas formações ou nos cálculos. Nestes casos, precisamos configurar estes campos como Colunas Auxiliares, que são valores perpendicularmente associados ao campo ao qual estão servindo.

Problema

Identificamos um caso onde uma Coluna Auxiliar é usada como condição em um cálculo de agregação personalizado, mas que está se comportando diferente quando o grupo ao qual faz parte possui apenas 1 item.

Simulação

Crie um Consulta com saída em CrossTab, seguindo as configurações baixo:

Comando SQL

Use o comando SQL abaixo (PostgreSQL):

SELECT 
    'Grupo com 2 Itens' AS agrupamento1
    , 'Item 1' AS agrupamento2
    , '11-Nov 2025' AS anomes
    , 1 condicao
    , null AS valor
UNION ALL

SELECT 
    'Grupo com 2 Itens' AS agrupamento1
    , 'Item 2' AS agrupamento2
    , '11-Nov 2025' AS anomes
    , 1 condicao    
    , null AS valor
UNION ALL

SELECT 
    'Grupo com 1 Item' AS agrupamento1
    , 'Item 1' AS agrupamento2
    , '11-Nov 2025' AS anomes
    , 1 condicao
    , null AS valor

Configuração do CrossTab

Use essas Configurações par ao CrossTab:

Use a seguinte configuração para a disposição dos campos:

Área Colunas
Colunas anomes
Linhas agrupamento1, agrupamento2
Dados valor

Configure a coluna condicao como campo auxiliar do campo de linha agrupamento2 (agrupamento nível 2)

Fórmula de Agregação Customizada

Por último, mude o “Modo de Agregação” do campo valor para “Customizado” e adicione a fórmula a seguir: if ([condicao]=1, 2, 1).

O Objetivo dessa fórmula é forçar um valor fixo para ser usado na área de dados (sobrescrevendo o valor original) com base no campo condicao: Quando for 1, mostra 2; senão, mostra 1.

Embora a coluna condicao retorne 1 para todas as linhas na QUERY, ela só está configurada como campo auxiliar no agrupamento2, portanto, quando o agrupamento1 estiver recolhido, o valor do campo auxiliar não estará disponível, o que deveria fazer com que a condição caísse no Else.

Resultado

Ao abrir o CrossTab no navegador, podemos perceber uma diferença no resultado do agrupamento com 1 item ou com mais itens:

Causa

Erro na plataforma

Solução

Pendente