- Created by Rosana Fagundes dos Santos Matos, last modified on Nov 19, 2025
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 14 Next »
Produto: Maxinsight
![]()
O objetivo do documento abaixo é fornecer as informações detalhadas sobre as tabelas disponíveis no DW. Seguindo o conceito de Fatos e Dimensões, será possível consultar e relacionar as tabelas, com o objetivo de disponibilizar os dados que são apresentados nos painéis do MaxGestão.
O documento está dividido em duas partes (1 - Fatos , 2 - Dimensões).
1 - Fatos
1.1 - fato_carteira (informações dos clientes das carteiras dos representantes)
1.2 - fato_pedido_realizado (informações gerais dos pedidos realizados)
1.3 - fato_pedido_previsto (informações gerais dos pedidos previstos)
1.4 - fato_km_cliente (informações gerais das quilometragens percorridas)
1.5 - fato_km_total (informações gerais das quilometragens percorridas entre os eventos)
1.6 - fato_eventos (informações gerais dos eventos realizados)
1.7 - fato_fornecedores_emissao (informações de vendas por fornecedores na visão de emissão dos pedidos)
1.8 - fato_fornecedores_faturamento (informações de vendas por fornecedores na visão de data de faturamento dos pedidos)
1.9 - fato_positivados (informações gerais dos clientes com positivação)
1.10 - fato_faturamento (informações gerais de vendas faturadas)
1.11 - fato_diasuteis (informações dos dias úteis registrados no calendário anual)
1.12 - fato_atendimento (Informações dos atendimentos realizados)
1.13 - fato_planejamento_visitas (Informações de rotas planejadas)
1.14 - fato_planejamento_entregas (Informações de entregas planejadas)
1.15 - fato_entregas_realizadas (Informações de entregas realizadas)
2 - Dimensões
2.1 - dim_gerente (informações dos Gerentes)
2.2 - dim_cliente (informações dos Clientes)
2.3 - dim_vendedores (informações dos Vendedores)
2.4 - dim_supervisores (informações dos Supervisores)
2.5 - dim_filial (informações das Filiais)
2.6 - dim_produto (informações dos produtos)
2.7 - dim_pedido (informações dos pedidos)
2.8 - dim_nota_fiscal (informações das notas fiscais)
2.9 - dim_acessodados (informações de acessos liberados)
2.10 - dim_carteira_cli_por_vendedor (informações agrupadas dos clientes da carteira do vendedor)
2.11 - dim_cliente_localizacao (informações de geolocalização dos clientes)
2.12 - dim_data (informações de data)
2.13 - dim_data_faturamento (informações de data de pedidos faturados)
2.14 - dim_eventos_positivados (informações dos eventos com positivação)
2.15 - dim_eventos_qtd_cli_carteira (informações de eventos dos clientes da carteira do vendedor)
2.16 - dim_eventos_qtde_agendamentos (informações de quantidade de clientes agendados e visitados)
2.17 - dim_eventos_qtde_equipes (informações agrupadas da quantidade de equipes nos eventos)
2.18 - dim_eventos_sequencia_prevista (informações de sequência prevista das visitas)
2.19 - dim_eventos_tabela_agendados (informações gerais dos clientes agendados)
2.20 - dim_acessoentidades (informações das entidadades cadastradas por perfil de usuário)
2.21 - dim_fornecedor (Informações dos Fornecedores)
1 - Fatos
1.1 - fato_carteira
Tabela | FATO_CARTEIRA | ||||
|---|---|---|---|---|---|
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_completa | date | N | Data e hora do pedido | ||
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
qtde_clientes | float | 8 | N | Quantidade de clientes da carteira do Vendedor | |
qtd_vendedores | float | 8 | N | Quantidade de Vendedores | |
qtd_clientes_positivados | float | 8 | N | Quantidade de Clientes positivados | |
Tabela utilizada para armazenar os dados de quantidade e positivação de clientes da carteira do vendedor.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores)
- Faça a junção por vendedor (fato_carteira.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_carteira.codigo_supervisor -> dim_supervisores.codigo_supervisor).
1.2 - fato_pedido_realizado
Tabela | FATO_PEDIDO_REALIZADO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_completa | date | N | Data e hora da realização do pedido | ||
condvenda | int | 4 | N | Tipo de venda - Normal, bonificada, futura etc. (1 – Venda, 5 – Bonificação, 7 - Venda Futura, 11 – Troca, 13 – NF Manifesto (Saída), 14 – Venda Manifesto (ProntaEntrega), 24 – Bonificação (Pronta-Entrega). | |
codigo_filial | varchar | 256 | N | Código da Filial | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
codigo_produto | varchar | 256 | N | Código do Produto | |
codigo_depto | varchar | 256 | N | Código do Departamento | |
codigo_secao | varchar | 256 | N | Código da Seção | |
codigo_fornecedor | varchar | 256 | N | Código do Fornecedor | |
codigo_categoria | varchar | 256 | N | Código da Categoria | |
qtdpedidorealizado | int | 4 | N | Quantidade de pedidos realizados | |
valor_realizado | float | 8 | N | Valor do pedido realizado | |
vlatend | float | 8 | N | Valor atendido | |
vlvendaprev | float | 8 | N | Valor previsto do pedido | |
vlbonific | float | 8 | N | Valor de bonificação | |
vlpedido | float | 8 | N | Valor do pedido | |
numped | int | 4 | N | Número do pedido | |
aguardando | varchar | 256 | N | Se o pedido está aguardando autorização do supervisor | |
numpederp | int | 4 | N | Número do pedido do ERP. | |
numero_carregamento | varchar | 256 | N | Identificador do carregamento | |
peso_total | numeric | 18,2 | N | Peso total do pedido | |
volume_total | numeric | 18,2 | N | Volume total do pedido | |
quant_total_caixas | numeric | 18,2 | N | Quantidade total de caixas | |
Tabela utilizada para armazenar os valores de pedidos realizados, seguindo o conceito da visão de emissão de pedido do painel geral do MaxGestão.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim_filial, dim_cliente, dim_produto) , podendo verificar qual fornecedor está com os acessos liberados através da (dim_acessodados).
- Faça a junção por vendedor (fato_pedido_realizado.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_pedido_realizado.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por filial(fato_pedido_realizado.codigo_filial -> dim_filial.codigo_filial).
- Faça a junção por cliente(fato_pedido_realizado.codigo_cliente -> dim_cliente.codigo_cliente).
- Faça a junção por produto(fato_pedido_realizado.codigo_produto -> dim_produto.codigo_produto).
- Para verificar por fornecedores, adicione no WHERE fato_pedido_realizado.codigo_fornecedor in (select key_dados from dim_acessodados where codigo_dados = ‘99’)
1.3 - fato_pedido_previsto
Tabela | FATO_PEDIDO_PREVISTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pedido | bigint | S | Identificador do pedido | ||
data_completa | date | N | Data e hora do pedido | ||
codigo_filial | varchar | 256 | N | Código da Filial | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
tipopedido | numeric | 18 | N | Tipo de pedido (1 - Pedido, 2 - Orçamento) | |
condvenda | numeric | 18 | N | Tipo de venda - Normal, bonificada, futura etc. (1 – Venda, 5 – Bonificação, 7 - Venda Futura, 11 – Troca, 13 – NF Manifesto (Saída), 14 – Venda Manifesto (ProntaEntrega), 24 – Bonificação (Pronta-Entrega). | |
vlatend | float | 8 | N | Valor atendido | |
vlvendaprev | float | 8 | N | Valor de venda prevista | |
vlbonific | float | 8 | N | Valor de bonificação | |
aguardando | varchar | 256 | N | Se o pedido está aguardando autorização do Supervisor | |
codusuario | varchar | 256 | N | Código do usuário na Máxima | |
status | int | 4 | N | Status do Pedido 1 - Enviado para API 2 - Enviado para ERP 3 - Recebido pelo ERP 4 - Processado pelo ERP 5 - Erro de Processamento no ERP 6 - Pedido Bloqueado para Envio ao ERP 7 - Pedido Bloqueado/Cancelado 8 - Pedido Pendente de Autorização 9 - Pedido Aprovado 10 - Pedido Negado 11 - Pedido Gravado no Força de Vendas (FV) 12 - Cancelamento de Pedido 13 - Carregamento Não Importado 14 - Erro de Integração com ERP 15 - Cancelamento de Pedido no ERP | |
numped | numeric | 18 | N | Número do pedido | |
numpederp | numeric | 18 | N | Número do pedido no ERP. | |
| tipocritica | numeric | 10 | N | Tipo de crítica (0 = Sucesso, 1 = Alerta, 2 = Erro, 3 = Cancelado, 4 = Aguardando Autorização Preço, 5 = Autorização Preço Aceita, 6 = Autorização Preço Negada, 7 = Processando, 8 = Aguardando Assinatura, 9 = Falha No WebService, 10 = Aguardando Autorização Lucratividade, 11 = Autorização Lucratividade Aceita, 12 = Autorização Lucratividade Negada, 13 = Aguardando Autorização Geral, 14 = Autorização Geral Aceita, 15 = Autorização Geral Negada, 16 = Pedidos Enviado Para Nuvem, 17 = Pedido Bloqueado Nuvem, 18 = Pedido Cancelado Nuvem, 19 = Aguardando Autorização Bonificação, 20 = Autorização Bonificação Aceita, 21 = Autorização Bonificação Negada, 22 = Aguardando Autorização Pedido Troca, 23 = Autorizacao Pedido Troca Aceita, 24 = Autorizacao Pedido Troca Negada, 25 = Aguardando Autorização SaldoCC Negativo, 26 = Autorização SaldoCC Negativo Aceita, 27 = Autorização SaldoCC Negativo Negada, 28 = Aguardando Autorização Lucratividade Fornecedor, 29 = Autorização Lucratividade Fornecedor Aceita, 30 = Autorização Lucratividade Fornecedor Negada, 31 = Aguardando Autorização Cliente Bloqueado, 32 = Autorizacao Cliente Bloqueado Aceita, 33 = Autorizacao Cliente Bloqueado Negada, 34 = Aguardando Autorização Cliente Limite Excedido, 35 = Autorizacao Cliente Limite Excedido Aceita, 36 = Autorizacao Cliente Limite Excedido Negada, 37 = Erro Token Link MaxPag, 38 = Aguardando Link MaxPag, 39 = Aguardando Preenchimento Link MaxPag, 40 = Erro Geração Link MaxPag, 41 = Erro Colunas MaxPag, 42 = Erro Processamento MaxPag, 43 = Pre-Pagamento Autorizado MaxPag, 44 = Em Processamento MaxPag, 45 = Autorizado MaxPag, 46 = Cancelado MaxPag, 47 = Não Autorizado MaxPag, 48 = Validade Incorreta MaxPag, 49 = Autorização Pendente, 50 = Autorização de Item Bonificado Aceita, 51 = Autorização de Item Bonificado Negada ) | |
posicao | string | 256 | N | Status do Pedido (L – Liberado, C – Cancelado, F - Faturado, B - Bloqueado, null - Pedido não existe no histórico) | |
Tabela utilizada para armazenar dados dos pedidos previstos.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim_filial, dim_cliente) .
- Faça a junção por vendedor (fato_pedido_previsto.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_pedido_previsto.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por filial(fato_pedido_previsto.codigo_filial -> dim_filial.codigo_filial).
- Faça a junção por cliente(fato_pedido_previsto.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção por histórico de status de pedidos (fato_pedido_previsto.id_pedido -> fato_historico_status_pedido_previsto.id_pedido)
1.4 - fato_km_cliente
Tabela | FATO_KM_CLIENTE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
evento_distancia | float | 8 | N | Distância total do evento | |
data_hora_evento | timestamp | N | Data e hora do evento | ||
Tabela utilizada para armazenar dados da distância percorrida por cliente.
- Relacione e agrupe a fato com a dimensão( dim_cliente) .
- Faça a junção por cliente(fato_km_cliente.codigo_cliente -> dim_cliente.codigo_cliente).
1.5 - fato_km_total
Tabela | FATO_KM_TOTAL | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_completa | timestamp | N | Data e hora do evento | ||
codigo_cliente_maxima | varchar | 256 | N | Código do Cliente na Máxima | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
tipo_distancia | varchar | 256 | N | Tipo de distância percorrida (RASTRO ou TRABALHADO) | |
valor_distancia | float | 8 | N | Somatório total da distância percorrida | |
total_acuracia | float | 8 | N | Precisão na captura do KM Trabalhado | |
Tabela utilizada para armazenar dados da distância total percorrida(RASTRO e TRABALHADO).
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores) .
- Faça a junção por vendedor (fato_km_total.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_km_total.codigo_supervisor -> dim_supervisores.codigo_supervisor).
1.6 - fato_eventos
Tabela | FATO_EVENTOS | ||||
|---|---|---|---|---|---|
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | varchar | 256 | N | Id do evento | |
id_apk | numeric | 256 | N | Id do evento gerado na APK | |
tipo_evento | varchar | 256 | N | Tipo do Evento(CHECKIN - CHECKOUT - PEDIDO - PEDIDOBLOQUEADO - JUSTIFICATIVANAOVENDA) | |
rastro_id_apk | numeric | 8 | N | Id único gerado a cada rastro | |
codigo_produto_maxima | numeric | 8 | N | Código Produto da máxima (1 - MaxGestão) | |
codigo_cliente_maxima | varchar | 256 | N | Código do cliente na Máxima | |
informacoes_adicionais | varchar | 256 | N | Observações inseridas no evento | |
codigo_usuario | varchar | 256 | N | Código usuário na Máxima | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
latitude | float | 8 | N | Latitude do Rastro | |
longitude | float | 8 | N | Longitude do Rastro | |
data_hora_captura | timestamp | N | Data e hora da captura do rastro | ||
data_hora_captura_tz | timestamp | N | Data e hora da captura do rastro(- 03:00) | ||
velocidade | numeric | 18 | N | Velocidade da captura | |
acuracia | numeric | 18 | N | Precisão(em metros) na captura do KM Trabalhado | |
distancia | numeric | 18 | N | Distância percorrida | |
modo_aviao | bool | N | Se o modo avião estava ativado (F ou V) | ||
economia_energia | bool | N | Se o modo de economia de bateria estava ativado (F ou V) | ||
gps | bool | N | Se o GPS estava ativado (F ou V) | ||
wifi | bool | N | Se o Wifi estava ativado (F ou V) | ||
dadosmoveis | bool | N | Se os dados móveis estava ativado (F ou V) | ||
bateria | varchar | 256 | N | Porcentagem da Bateria | |
numeroversao | varchar | 256 | N | Versão da APK do MaxPedido | |
codigo_cliente | varchar | 256 | N | Código do Cliente visitado | |
checkincheckout_codigo_vinculacao | varchar | 18 | N | Código de vinculação do Checkin e Checkout | |
data_hora_evento | timestamp | N | Data e hora do evento | ||
data_hora_evento_tz | timestamp | N | Data e hora do evento(-03:00) | ||
motivo_justificativa | varchar | 256 | N | Justificativa de Venda e não venda | |
data_abertura | timestamp | N | Data da abertura do aparelho | ||
data_abertura_tz | timestamp | N | Data da abertura do aparelho(-03:00) | ||
data_fechamento | timestamp | N | Data de fechamento do aparelho | ||
data_fechamento_tz | timestamp | N | Data de fechamento do aparelho(-03:00) | ||
justificativa_nao_venda_codigovinculacao | varchar | 18 | N | Código de vinculação da Justificativa de Não venda | |
data_inicio_pedido | timestamp | N | Data de início do pedido | ||
data_inicio_pedido_tz | timestamp | N | Data de início do pedido(-03:00) | ||
data_fim_pedido | timestamp | N | Data do fim do pedido | ||
data_fim_pedido_tz | timestamp | N | Data do fim do pedido(-03:00) | ||
numero_pedido | numeric | 18 | N | Número do pedido | |
numero_pedido_rca | numeric | 18 | N | Número do pedido do Vendedor | |
conteudo | varchar | 256 | N | Informação completa do rastro | |
pedido_codigo_vinculacao | varchar | 18 | N | Refere-se ao código de vinculação do pedido | |
Tabela utilizada para armazenar todas as informações de eventos(CHECKIN - CHECKOUT - PEDIDO - PEDIDOBLOQUEADO - JUSTIFICATIVANAOVENDA).
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim cliente, dim_cliente_localizacao(Para verificar Latitude e Longitude)) .
- Faça a junção por vendedor (fato_eventos.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_eventos.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por cliente (fato_eventos.codigo_cliente -> dim_cliente.codigo_cliente).
- Faça a junção por cliente para verificar latitude e longitude (fato_eventos.codigo_cliente -> dim_cliente_localizacao.codigo_cliente).
1.7 - fato_fornecedores_emissao
Tabela | FATO_FORNECEDORES_EMISSAO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_completa | date | N | Data da venda por Fornecedor por emissão do pedido | ||
codigo_fornecedor | varchar | 256 | N | Código do Fornecedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
codigo_filial | varchar | 256 | N | Código da Filial | |
vldevolucao | float | 8 | N | Valor de devolução por Fornecedor por emissão do pedido | |
Tabela utilizada para armazenar as informações de vendas por fornecedor no conceito de Emissão de pedido.
- Relacione e agrupe a fato com as dimensões(dim_supervisores, dim_filial) , podendo verifica qual fornecedor está com os acessos liberados através da (dim_acessodados).
- Faça a junção por supervisor (fato_fornecedores_emissao.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por filial(fato_fornecedores_emissao.codigo_filial -> dim_filial.codigo_filial).
- Para verificar por fornecedores, adicione no WHERE fato_fornecedores_emissao.codigo_fornecedor in(select key_dados from dim_acessodados where codigo_dados = ‘99’)
1.8 - fato_fornecedores_faturamento
Tabela | FATO_FORNECEDORES_FATURAMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_completa | date | N | Data da venda por Fornecedor por data de faturamento | ||
codigo_fornecedor | varchar | 256 | N | Código do Fornecedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
codigo_filial | varchar | 256 | N | Código da Filial | |
vldevolucao | float | 8 | N | Valor de devolução por Fornecedor por data de faturamento | |
Tabela utilizada para armazenar as informações de vendas por fornecedor no conceito de Data de faturamento do pedido.
- Relacione e agrupe a fato com as dimensões(dim_supervisores, dim_filial) , podendo verificar qual fornecedor está com os acessos liberados através da (dim_acessodados).
- Faça a junção por supervisor (fato_fornecedores_faturamento.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por filial(fato_fornecedores_faturamento.codigo_filial -> dim_filial.codigo_filial).
- Para verificar por fornecedores, adicione no WHERE fato_fornecedores_faturamento.codigo_fornecedor in (select key_dados from dim_acessodados where codigo_dados = ‘99’)
1.9 - fato_positivados
Tabela | FATO_POSITIVADOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
codigo_gerente | varchar | 256 | N | Código do Gerente | |
qtd_produtos | float | 8 | N | Quantidade de produtos | |
qtd_clientes | float | 8 | N | Quantidade de clientes positivados | |
data_completa | date | N | Data da positivação | ||
Tabela utilizada para armazenar informações de quantidade de clientes e produtos positivados, seja por gerente, supervisor ou vendedor.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim_gerente) .
- Faça a junção por vendedor (fato_positivados.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_positivados.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por gerente (fato_positivados.codigo_gerente -> dim_supervisores.codigo_gerente).
1.10 - fato_faturamento
Tabela | FATO_FATURAMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_produto | varchar | 256 | N | Código do Produto | |
data_completa | date | N | Data completa do faturamento | ||
codigo_filial | varchar | 256 | N | Código da Filial | |
data_pedido | date | N | Data do pedido | ||
data_faturamento | date | N | Data faturamento | ||
numero_nota_fiscal | numeric | 18 | N | Número da Nota Fiscal | |
valor_ipi_bonific | float | 8 | N | Valor de IPI bonificado | |
peso_bruto | float | 8 | N | Indica Peso Bruto | |
qtde_venda | float | 8 | N | Quantidade vendida | |
valor_ipi | float | 8 | N | Valor de IPI | |
qtde_contabil | float | 8 | N | Quantidade contábil | |
numero_itens | numeric | 10 | N | Número de itens | |
sub_total | float | 8 | N | Sub total | |
valor_bonific_unit | float | 8 | N | Valor de bonificação | |
valor_tabela_unit | float | 8 | N | Valor de tabela do Pedido | |
valor_custo_fin_unit | float | 8 | N | Valor do custo financeiro | |
valor_venda_unit | float | 8 | N | Valor unitário de venda do pedido | |
st_unit | float | 8 | N | Valor unitário de ST | |
valor_repasse_unit | float | 8 | N | Valor unitário de repasse do pedido | |
Tabela utilizada para armazenar todas as informações de vendas faturadas, na visão de Data de faturamento do pedido do Painel geral do MaxGestão.
OBS: A fato foi criada para substituir a fato_faturamento que possui o mesmo dicionário de dados.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim_filial, dim_cliente, dim_produto) , podendo verifica qual fornecedor está com os acessos liberados através da (dim_acessodados).
- Faça a junção por vendedor (fato_faturamento.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por supervisor (fato_faturamento.codigo_supervisor -> dim_supervisores.codigo_supervisor).
- Faça a junção por filial(fato_faturamento.codigo_filial -> dim_filial.codigo_filial).
- Faça a junção por cliente(fato_faturamento.codigo_cliente -> dim_cliente.codigo_cliente).
- Faça a junção por produto(fato_faturamento.codigo_produto -> dim_produto.codigo_produto).
- Para verificar por fornecedores, adicione no WHERE fato_faturamento.codigo_fornecedor in (select key_dados from dim_acessodados where codigo_dados = ‘99’)
1.11 - fato_diasuteis
Tabela | FATO_DIASUTEIS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data | date | N | Dias úteis no calendário anual | ||
Tabela utilizada para armazenar as informações de dias úteis.
1.12 - fato_atendimento
Tabela | FATO_ATENDIMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
sequencia_realizada | int | 4 | N | Sequência do atendimento realizado | |
sequencia_realizada_cliente | int | 4 | N | Sequência do atendimento realizado. Repete a sequência para atendimentos seguidos realizados no mesmo cliente. | |
horario_atendimento_evento_tz | timestamp | N | Data e hora do atendimento (-03:00) | ||
horario_atendimento_evento | timestamp | N | Data e hora do atendimento | ||
data_atendimento | date | N | Data do atendimento | ||
horainicio_atendimento | varchar | 256 | N | Hora de início do atendimento | |
horafim_atendimento | varchar | 256 | N | Hora de fim do atendimento | |
tempo_atendimento | varchar | 256 | N | Tempo do atendimento | |
tempo_deslocamento | varchar | 256 | N | Tempo de deslocamento | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
numero_pedido | numeric | 18 | N | Número do pedido | |
codigo_justificativa | varchar | 256 | N | Código de Justificativa de não venda | |
codigo_vinculacao_pedido | varchar | 256 | N | Código utilizado para relacionar pedido ao checkin/checkout do evento (fato_eventos. pedido_codigo_vinculacao ) | |
Tabela utilizada para armazenar as informações de atendimento usando validação do painel de auditório do maxGestão.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente)
- Faça a junção por vendedor (fato_atendimento.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por cliente(fato_atendimento.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção com a fato_visitas_realizadas ( data_atendimento -> fato_visitas_realizdas.data
AND codigo_vendedor -> fato_atendimento. codigo_vendedor
AND coalesce(fnumero_pedido,0) -> coalesce(fato_visitas.numero_pedido,0)
AND coalesce(codigo_justificativa,'0') -> coalesce(fato_visitas.codigo_justificativa,'0')
)
1.13 - fato_planejamento_visitas
Tabela | FATO_DIASUTEIS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data | varchar | 256 | N | Data da visita planejada | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
id_rota | numeric | 18 | N | Identificador da rota cadastrada | |
sequencia | numeric | 4 | N | Sequência da rota cadastrada | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
Tabela utilizada para armazenar as informações do agendamento de visitas de clientes.
- Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente)
- Faça a junção por vendedor (fato_atendimento.codigo_vendedor -> dim_vendedores.codigo_vendedor).
- Faça a junção por cliente(fato_atendimento.codigo_cliente -> dim_cliente.codigo_cliente).
1.14 - fato_planejamento_entrega
Tabela | FATO_PLANEJAMENTO_ENTREGAS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_carregamento | numeric | 18 | N | Código do carregamento | |
codigo_entrega | numeric | 18 | N | Código da entrega cadastrada | |
data_saida_carregamento | date | N | Data da saida do carregamento | ||
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_rota_cliente | varchar | 256 | N | Código da rota cadastrada do cliente | |
codigo_motorista | varchar | 256 | N | Código do Motorista | |
filial_pedido | varchar | 256 | N | Código da Filial | |
seq_prevista | int | 4 | N | Número da sequência da entrega planejada | |
situacao_entrega | varchar | 256 | N | Situação da entrega (FN- | |
distancia_planejada | float | 8 | N | Distância planejada em KM | |
Tabela utilizada para armazenar as informações do agendamento de entregas nos clientes realizada no maxMotorista/maxRoteirizador.
Relacione e agrupe a fato com as dimensões(dim_filial, dim_cliente)
Faça a junção por vendedor (fato_planejamento_entregas.filial_pedido -> dim_filial.codigo_filial).
Faça a junção por cliente(fato_planejamento_entregas.codigo_cliente -> dim_cliente.codigo_cliente).
1.15 - fato_entregas_realizadas
Tabela | FATO_ENTREGAS_REALIZADAS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_carregamento | numeric | 18 | N | Código do carregamento | |
codigo_entrega | numeric | 18 | N | Código da entrega cadastrada | |
data_saida_carregamento | date | N | Data da saída do carregamento | ||
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_rota_cliente | varchar | 256 | N | Código da rota cadastrada do cliente | |
codigo_motorista | varchar | 256 | N | Código do Motorista | |
filial_pedido | varchar | 256 | N | Código da Filial | |
data_inicio_descarga | date | N | Data início da descarga | ||
data_fim_descarga | date | N | Data final da descarga | ||
data_inicio_romaneio | date | N | Data início do romaneio | ||
data_fim_romaneio | date | N | Data final do romaneio | ||
tempo_entrega_em_minutos | float | 8 | N | Tempo de entrega em minutos | |
seq_realizada | int | 4 | N | Número da sequência da entrega realizada | |
situacao_entrega | varchar | 256 | N | Situação da entrega (FN- | |
Tabela utilizada para armazenar as informações da realização de entregas nos clientes realizada no maxMotorista.
Relacione e agrupe a fato com as dimensões(dim_filial, dim_cliente)
Faça a junção por vendedor (fato_planejamento_entregas.filial_pedido -> dim_filial.codigo_filial).
Faça a junção por cliente(fato_planejamento_entregas.codigo_cliente -> dim_cliente.codigo_cliente).
1.16 - fato_entregas
Tabela | FATO_ENTREGAS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_motorista | varchar | 256 | N | Código ou matrícula do motorista responsável pela entrega | |
numero_carregamento | varchar | 256 | N | Número do carregamento associado à entrega | |
id_entrega | bigint | N | PK | Identificador único da entrega | |
total_registradas | bigint | N | Quantidade de entregas registradas com status válidos | ||
entregues | bigint | N | Quantidade de entregas concluídas com sucesso | ||
devolucao_parcial | bigint | N | Quantidade de entregas com devolução parcial | ||
devolucao_total | bigint | N | Quantidade de entregas com devolução total | ||
reentrega | bigint | N | Quantidade de entregas reenviadas (reentrega) | ||
checkin | bigint | N | Quantidade de entregas com registro de check-in no cliente | ||
finalizada | bigint | N | Quantidade de entregas finalizadas | ||
pendente | bigint | N | Quantidade de entregas pendentes de conclusão | ||
espera | bigint | N | Quantidade de entregas em estado de espera | ||
recebimento_pendente | bigint | N | Quantidade de entregas aguardando recebimento pelo cliente | ||
solicitada_devolucao | bigint | N | Quantidade de entregas com solicitação de devolução registrada | ||
tem_carregamento | varchar | 256 | N | Indica se existe carregamento associado à entrega (campo auxiliar) | |
seq_motorista_dtsaida | integer | N | Sequência da saída do motorista no dia, usada para ordenação | ||
codigo_cliente | varchar | 256 | N | Código do cliente para o qual a entrega foi feita | |
data_inicio_descarga | date | N | Data e hora do início da descarga no local de entrega | ||
data_termino_descarga | date | N | Data e hora de término da descarga no local de entrega | ||
tempo_entrega | numeric | 18,2 | N | Tempo total da entrega em minutos (diferença entre início e fim da descarga) | |
data_inicio_checkin | date | N | Data e hora em que o motorista fez check-in no local do cliente | ||
tolerancia_raio_entrega | numeric | 18,2 | N | Distância máxima tolerada (em metros) entre ponto de check-in e localização prevista | |
raio_entrega | numeric | 18,2 | N | Distância real (em metros) entre check-in e ponto previsto da entrega | |
latitude_cliente | varchar | 256 | N | Latitude prevista do endereço de entrega do cliente | |
longitude_cliente | varchar | 256 | N | Longitude prevista do endereço de entrega do cliente | |
latitude_checkin | varchar | 256 | N | Latitude em que o motorista fez o check-in | |
longitude_checkin | varchar | 256 | N | Longitude em que o motorista fez o check-in | |
Tabela utilizada para armazenar as informações da realização de entregas nos clientes realizadas no maxMotorista.
A tabela permite análises detalhadas sobre o comportamento e qualidade das entregas, como tempo de descarga, check-ins realizados,
devoluções, reentregas e distância entre o ponto previsto e o check-in.
OBS: Esta fato se conecta diretamente com os dados de carregamento e pedidos realizados,
permitindo cruzamentos com dados operacionais e logísticos.
- Para visualizar informações usuários do tipo “Motorista”, usar dim_usuario_motorista. Tipo = ‘M’
Relacione e agrupe a fato com as dimensões (dim_cliente, dim_empregado, dim_veiculo, dim_usuario_motorista.id_motorista, dim_situacao_entrega)
Faça a junção por cliente → (fato_entregas.codigo_cliente → dim_cliente.codigo_cliente)
Faça a junção por empregado → (fato_entregas.codigo_motorista → dim_empregado.matricula)
Faça a junção por veículo → (fato_carregamentos.codigo_veiculo → dim_veiculo.codigo_veiculo)
Faça a junção por motorista → (fato_entregas.codigo_motorista → dim_usuario_motorista.id_motorista)
Faça a junção por situação de entrega → (fato_entregas.id_situacao_entrega → dim_situacao_entrega.id)
Relacione e com a fato_carregamentos
Faça a junção por carregamento → (fato_entregas. numero_carregamento → fato_carregamentos.numero_carregamento)
Faça a junção por situação do romaneio via fato_carregamentos → (fato_carregamentos.id_situacao_romaneio → dim_situacao_romaneio.id)
Faça a junção por destino de carregamento via fato_carregamentos → (fato_carregamentos.id_destino_carregamento → dim_destino_carregamento.id)
Exemplos de uso:
Verificar entregas que ultrapassaram o raio de tolerância:
WHERE raio_entrega > tolerancia_raio_entrega
1.17 - fato_carregamentos
Tabela | FATO_CARREGAMENTOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
numero_carregamento | varchar | 256 | N | Identificador do carregamento | |
codigo_veiculo | varchar | 256 | N | Código do veículo utilizado no carregamento | |
codigo_motorista | varchar | 256 | N | Matrícula do motorista responsável | |
id_romaneio | bigint | N | Identificador do romaneio vinculado ao carregamento | ||
codigo_rota_principal | varchar | 256 | N | Código da rota principal associada ao carregamento | |
codigo_funcionario_montagem | varchar | 256 | N | Funcionário que realizou a montagem do carregamento | |
codigo_funcionario_cancelamento | numeric | 18 | N | Funcionário que cancelou o carregamento, se houver | |
codigo_ajudante1 | varchar | 256 | N | Código do primeiro ajudante | |
codigo_ajudante2 | varchar | 256 | N | Código do segundo ajudante | |
codigo_ajudante3 | varchar | 256 | N | Código do terceiro ajudante | |
data_saida_carregamento | date | N | Data de saída programada do carregamento | ||
data_saida_veiculo | date | N | Data de saída real do veículo | ||
data_faturamento | date | N | Data de faturamento do carregamento | ||
dia_dtsaida | varchar | 256 | N | Dia da saída do carregamento | |
mes_dtsaida | varchar | 256 | N | Mês da saída do carregamento | |
ano_dtsaida | varchar | 256 | N | Ano da saída do carregamento | |
data_inicio_romaneio | date | N | Data de início do romaneio | ||
data_fim_romaneio | date | N | Data de término do romaneio | ||
data_fechamento_carregamento | date | N | Data em que o carregamento foi finalizado no sistema | ||
data_montagem | date | N | Data da montagem física do carregamento | ||
hora_montagem | numeric | 2 | N | Hora da montagem do carregamento | |
minuto_montagem | numeric | 2 | N | Minuto da montagem do carregamento | |
segundo_montagem | numeric | 2 | N | Segundo da montagem do carregamento | |
id_situacao_romaneio | integer | N | Chave da situação do romaneio, referenciando a dimensão | ||
seq_motorista_dtsaida | integer | N | Ordem de saída do motorista no dia | ||
id_destino_carregamento | integer | N | Chave do destino do carregamento, referenciando a dimensão | ||
observacao_destino | varchar | 256 | N | Observações livres sobre o destino do carregamento | |
numero_notas_carregamento | integer | N | Número total de notas fiscais no carregamento | ||
valor_diaria | numeric | 18,2 | N | Valor da diária paga ao motorista ou ajudantes | |
quantidade_diaria | numeric | 18,2 | N | Quantidade de diárias atribuídas | |
peso_total_carregamento | numeric | 18,2 | N | Peso total das mercadorias no carregamento (kg) | |
volume_total_carregamento | numeric | 18,2 | N | Volume total das mercadorias no carregamento (m³) | |
valor_total_carregamento | numeric | 18,2 | N | Valor total em reais das mercadorias carregadas | |
numero_entregas | integer | N | Número total de entregas do carregamento | ||
quantidade_itens | integer | N | Quantidade total de itens no carregamento | ||
observacao_faturamento | varchar | 256 | N | Observações relacionadas ao faturamento do carregamento | |
Tabela utilizada para armazenar as informações dos carregamentos,
vinculando motoristas, veículos, destinos, horários, notas fiscais e custos operacionais.
A tabela permite análises operacionais sobre o processo de carregamento, montagem e faturamento,
incluindo controle de ajudantes, tempo de montagem, origem e destino.
Relacionamentos para uso analítico:
Relacione com as dimensões (dim_veiculo, dim_empregado, dim_destino_carregamento, dim_situacao_romaneio)
Faça a junção por veículo: (fato_carregamento. codigo_veiculo → dim_veiculo.codigo_veiculo)
Faça a junção por empregado para motorista e ajudantes → (
Motorista: (fato_carregamentos.codigo_motorista → dim_empregado.matricula)
Ajudante1: (fato_carregamentos. codigo_ajudante1 → dim_empregado.matricula)
Ajudante2: (fato_carregamentos. codigo_ajudante2 → dim_empregado.matricula)
Ajudante3: (fato_carregamentos. codigo_ajudante3 → dim_empregado.matricula)
Faça a junção por Destino do carregamento: (fato_carregamentos. id_destino_carregamento → dim_destino_carregamento.id)
Faça a junção por Situação do Romaneio: (fato_carregamentos.id_situacao_romaneio → dim_situacao_romaneio.id)
Relacione com a fato_entregas
Faça a junção por carregamento → (fato_carregamentos.numero_carregamento → fato_entregas. numero_carregamento)
1.18 - fato_devolucao
Tabela | FATO_DEVOLUCAO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_entrada | date | N | Data de entrada | ||
numero_nota_fiscal | numeric | 18 | N | Número da nota fiscal | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_filial | varchar | 256 | N | Código da filial | |
codigo_supervisor | varchar | 256 | N | Código do supervisor | |
vldevolucao | float | N | Valor da devolução | ||
quantidade_nf | numeric | 18 | N | Quantidade de notas fiscais devolvidas | |
quantidade_itens | float | N | Quantidades de itens devolvidos | ||
quantidade_clientes_devol | varchar | 256 | N | Quantidade de clientes | |
id_entrega | bigint | N | Identificador da entrega devolvida | ||
Tabela utilizada para armazenar as informações de devolução.
Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente)
Faça a junção por vendedor (fato_devolucao.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por cliente(fato_devolucao.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção por cliente(fato_devolucao.id_entrega -> fato_entregas.id_entrega)
1.19 - fato_estoque
Tabela | FATO_ESTOQUE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_fornecedor | varchar | 256 | N | Código do fornecedor | |
id_posicao_estoque | int | N | Posição do estoque (1, 2) | ||
posicao_estoque | varchar | 256 | N | Código do cliente 1 - Operante 2 - Bloqueado | |
data_entrada | date | N | Data de entrada | ||
data_saida | date | N | Data de saída | ||
id_distribuidor | varchar | 256 | N | Identificador único do distribuidor | |
filial | varchar | 256 | N | Código da filial | |
codigo_armazem | varchar | 256 | N | Código do armazém | |
id_produto | varchar | 256 | N | Código do produto | |
quantidade | int | 256 | N | Quantidade em estoque | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
Tabela utilizada para armazenar as informações sobre estoque.
Relacione e agrupe a fato com as dimensões(dim_fornecedor, dim_produto, dim_cliente)
Faça a junção por fornecedor (fato_estoque.codigo_fornecedor -> dim_fornecedor.codigo_fornecedor).
Faça a junção por produto(fato_estoque.id_produto -> dim_produto.codigo_produto).
Faça a junção por cliente(fato_estoque.codigo_cliente -> dim_cliente.codigo_cliente).
1.20 - fato_item_devolucao
Tabela | FATO_ITEM_DEVOLUCAO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_devolucao | date | N | Data de devolução | ||
numero_nota_fiscal | numeric | 18 | N | Número nota fiscal | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_filial | varchar | 256 | N | Código filial | |
codigo_fornecedor | varchar | 256 | N | Código do fornecedor | |
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_supervisor | varchar | 256 | N | Código do supervisor | |
codigo_produto | varchar | 256 | N | Código do produto | |
codigo_barras | varchar | 256 | N | Código de barras | |
codigo_fabrica | varchar | 256 | N | Código de fábrica | |
quantidade_devolvida | float | 8 | N | Quantidade devolvida | |
valor_devolucao | float | 8 | Valor devolvido | ||
Tabela utilizada para armazenar as informações dos itens das devoluções.
Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente, dim produto, dim_fornecedor, filial)
Faça a junção por vendedor (fato_item_devolucao.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por cliente (fato_item_devolucao.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção por produto (fato_item_devolucao.codigo_produto -> dim_produto.codigo_produto).
Faça a junção por filial(fato_item_devolucao.codigo_filial -> dim_filial.codigo_filial).
1.21 - fato_item_faturamento
Tabela | FATO_ITEM_FATURAMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data_faturamento | date | N | Date de faturamento | ||
data_pedido | date | N | Data do pedido | ||
numero_nota_fiscal | numeric | 18 | N | Número da nota fiscal | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_filial | varchar | 256 | N | Código da filial | |
codigo_fornecedor | varchar | 256 | N | Código do fornecedor | |
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_supervisor | varchar | 256 | N | Código do supervisor | |
codigo_produto | varchar | 256 | N | Código do produto | |
codigo_barras | varchar | 256 | N | Código de barras | |
codigo_fabrica | varchar | 256 | N | Código de fábrica | |
qt_vendida | int | Quantidade vendida | |||
qt_cortada | int | Quantidade cortada | |||
qt_faturada | int | Quantidade faturada | |||
preco_tabela | float | 8 | Preço tabela | ||
preco_venda | float | 8 | Preço venda | ||
valor_desconto | float | 8 | Valor desconto | ||
peso_bruto | numeric | 18,2 | Peso bruto | ||
numero_pedido | bigint | Número pedido | |||
Tabela utilizada para armazenar as informações dos itens faturados.
Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_supervisores, dim_filial, dim_cliente, dim_produto).
Faça a junção por vendedor (fato_item_faturamento.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por supervisor (fato_item_faturamento.codigo_supervisor -> dim_supervisores.codigo_supervisor).
Faça a junção por filial(fato_item_faturamento.codigo_filial -> dim_filial.codigo_filial).
Faça a junção por cliente(fato_item_faturamento.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção por produto(fato_item_faturamento.codigo_produto -> dim_produto.codigo_produto).
1.22 - fato_metas_clientes
Tabela | FATO_METAS_CLIENTES | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data | date | N | Data inicial da meta*** | ||
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_rota | varchar | 256 | N | Código da rota | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
valor_planejado | float | 8 | N | Valor planejado | |
Tabela utilizada para armazenar as informações de metas por cliente.
Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente)
Faça a junção por vendedor (fato_metas_clientes.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por cliente (fato_metas_clientes.codigo_cliente -> dim_cliente.codigo_cliente).
1.23 - fato_nota_devolucao
Tabela | FATO_NOTA_DEVOLUCAO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data | date | N | Data da nota | ||
numnota | numeric | 18 | N | Número nota fiscal | |
numnota_devolucao | numeric | 18 | N | Número nota fiscal de devolução | |
valor_devolucao | varchar | 256 | N | Valor da devolução | |
motivo | varchar | 256 | N | Motivo da devolução | |
codigo_vendedor | varchar | 256 | N | Código do vendedor | |
codigo_produto | varchar | 256 | N | Código do produto | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_fornecedor | varchar | 256 | N | Código do fornecedor | |
codigo_filial | varchar | 256 | N | Código da filial | |
Tabela utilizada para armazenar as informações sobre notas de devolução.
Relacione e agrupe a fato com as dimensões(dim_vendedores, dim_cliente, dim_produto)
Faça a junção por vendedor (fato_nota_devolucao.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por cliente (fato_nota_devolucao.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção por produto(fato_nota_devolucao.codigo_produto -> dim_produto.codigo_produto).
1.24 - fato_visitas_realizadas
Tabela | FATO_VISITAS_REALIZADAS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
data | date | N | Data da visita | ||
codigo_cliente | varchar | 256 | N | Código do cliente | |
id_rota | varchar | 256 | N | Identificador da rota | |
sequencia_realizada | int | N | Sequência da visita | ||
motivo | varchar | 256 | N | Motivo de não venda, caso não tenha ocorrido venda. | |
observação | varchar | 256 | N | Observação de pedido e de visita | |
pdv | varchar | 256 | N | S – cliente foi atendido presencialmente N – cliente atendido remotamente | |
codigo_justificativa | varchar | 256 | N | Código da justificativa não venda, se houver | |
numero_pedido | numeric | 18,0 | N | Número do pedido, se houver | |
Tabela utilizada para armazenar as informações sobre notas de devolução.
Relacione e agrupe a fato com as dimensões (dim_vendedores, dim_cliente)
Faça a junção por vendedor (fato_visitas_realizadas.codigo_vendedor -> dim_vendedores.codigo_vendedor).
Faça a junção por cliente (fato_visitas_realizadas.codigo_cliente -> dim_cliente.codigo_cliente).
Faça a junção com a fato_atendimento ( data -> fato_atendimento. data_atendimento
AND codigo_vendedor -> fato_atendimento. codigo_vendedor
AND coalesce(fnumero_pedido,0) -> coalesce(fato_atendimento.numero_pedido,0)
AND coalesce(codigo_justificativa,'0') -> coalesce(fato_atendimento.codigo_justificativa,'0')
1.25 - fato_mp_caminho_imagem
Tabela | FATO_MP_CAMINHO_IMAGEM | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_caminho_imagem | bigint | S | Identificador do caminho de imagem no maxPesquisa. | ||
id_resposta | bigint | S | Resposta à qual a imagem está associada (fato_mp_respostas). | ||
caminho_imagem | varchar | 512 | N | Caminho/URL do arquivo de imagem. | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Fato de caminhos dos arquivos de imagem anexados às respostas.
Relacione e agrupe com a fato (fato_mp_respostas)
Faça a junção com respostas (fato_mp_caminho_imagem.id_resposta → fato_mp_respostas.id_resposta).
1.26 - fato_mp_respostas
Tabela | FATO_MP_RESPOSTAS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pergunta | bigint | S | Pergunta respondida (chave para dim_mp_pergunta) no maxPesquisa. | ||
id_resposta | bigint | S | Identificador da resposta. | ||
id_usuario | bigint | S | Usuário/supervisor/promotor que respondeu (dim_mp_usuario). | ||
id_pdp | bigint | S | Ponto de pesquisa onde a resposta foi coletada (dim_mp_ponto_pesquisa). | ||
resposta | varchar | 4000 | N | Conteúdo da resposta (texto ou código). | |
data_resposta | timestamp | N | Data/hora da resposta. | ||
excluido | varchar | 1 | N | Flag lógica de exclusão. | |
Fato de respostas das pesquisas.
Relacione e agrupe com as dimensões (dim_mp_pergunta, dim_mp_pergunta, dim_mp_ponto_pesquisa)
Faça a junção com pergunta (fato_mp_respostas.id_pergunta → dim_mp_pergunta.id_pergunta).
Faça a junção com usuário (fato_mp_respostas.id_usuario → dim_mp_usuario.id_usuario).
Faça a junção com ponto de pesquisa (fato_mp_respostas.id_pdp → dim_mp_ponto_pesquisa.id_pdp).
1.27 - fato_mp_relatorio_atividades
Tabela | FATO_MP_RELATORIO_ATIVIDADES | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_resposta | bigint | S | Identificador da resposta associada (fato_mp_respostas) no maxPesquisa. | ||
id_atividade | bigint | S | Identificador da atividade (dim_mp_atividade). | ||
caminho_imagem | varchar | 512 | N | Caminho/URL do arquivo de imagem associado à resposta. | |
data_checkin | timestamp | N | Data/hora de check-in no ponto de pesquisa. | ||
data_checkout | timestamp | N | Data/hora de check-out do ponto de pesquisa. | ||
id_pdp | bigint | S | Ponto de pesquisa onde a atividade foi realizada (dim_mp_ponto_pesquisa). | ||
id_usuario | bigint | S | Usuário/supervisor/promotor que realizou a atividade (dim_mp_usuario). | ||
Fato de relatórios de atividades.
Relacione e agrupe a fato com a fato (fato_mp_respostas)
Relacione e agrupe a fato com as dimensões ( dim_mp_atividade, dim_mp_ponto_pesquisa,
dim_mp_usuario)
Faça a junção com respostas (fato_mp_relatorio_atividades.id_resposta → fato_mp_respostas.id_resposta).
Faça a junção com respostas (fato_mp_relatorio_atividades.id_atividade → dim_mp_atividade.id_atividade).
Faça a junção com respostas (fato_mp_relatorio_atividades.id_pdp → dim_mp_ponto_pesquisa.id_pdp).
Faça a junção com respostas (fato_mp_relatorio_atividades.id_usuario → dim_mp_usuario.id_usuario).
Query:


1.28 - fato_historico_status_pedido_previsto
Tabela | FATO_HISTORICO_STATUS_PEDIDO_PREVISTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pedido | bigint | S | Identificador do pedido (fato_pedido_previsto) | ||
status_anterior | bigint | N | Status anterior | ||
status | bigint | S | Status atual | ||
data_atualizacao | timestamp | S | Data/hora da mudança de status. | ||
Fato de histórico dos status do pedido.
Relacione e agrupe a fato com a fato_pedido_previsto.
Faça a junção com pedidos (fato_historico_status_pedido_previsto.id_pedido → fato_pedido_previsto.id_pedido).
Query:


1.29 - fato_coleta_estoque
Tabela | FATO_COLETA_ESTOQUE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_produto | varchar | 50 | S | Código do produto | |
data_coleta | date | S | Data da coleta | ||
codigo_vendedor | varchar | 50 | S | Código do vendedor | |
codigo_cliente | varchar | 50 | S | Código do cliente | |
quantidade | numeric | 22,6 | Quantidade | ||
codigo_auxiliar | varchar | 50 | Código de barras do produto | ||
codigo_filial | varchar | 50 | Código da filial | ||
Fato de coleta de estoque.
Relacione e agrupe a fato com a dim_clidente, dim_produto, dim_vendedor e dim_filial.
Faça a junção com clientes (fato_coleta_estoque.codigo_cliente → dim_cliente.codigo_cliente).
Faça a junção com produtos (fato_coleta_estoque.codigo_produto → dim_produto.codigo_produto)
Faça a junção com vendedores (fato_coleta_estoque.codigo_vendedor → dim_produto.codigo_vendedor).
Faça a junção com vendedores (fato_coleta_estoque.codigo_filial → dim_filial.codigo_filial).
2 - Dimensões
2.1 - dim_gerente
Tabela | DIM_GERENTE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_gerente | varchar | 256 | N | Código do Gerente | |
nome_gerente | varchar | 256 | N | Nome do Gerente | |
codigo_filial | varchar | 256 | N | Código da Filial | |
Tabela utilizada para armazenar as informações dos gerentes.
- Colunas utilizadas para agrupamento e ligação com as fatos -> (codigo_gerente, codigo_filial).
2.2 - dim_cliente
Tabela | DIM_CLIENTE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_cliente_principal | varchar | 256 | N | Código do Cliente Principal | |
codigo_vendedor1 | varchar | 256 | N | Código do Vendedor1 | |
codigo_vendedor2 | varchar | 256 | N | Código do Vendedor2 | |
codigo_vendedor3 | varchar | 256 | N | Código do Vendedor3 | |
fantasia | varchar | 256 | N | Nome fantasia da empresa (Pessoa Jurídica). | |
razaosocial | varchar | 256 | N | Razão Social | |
cnpj | varchar | 256 | N | CNPJ do Cliente | |
tipo_documento | varchar | 256 | N | Indica se é um CNPJ ou CPF no campo cnpj | |
cidade | varchar | 256 | N | Cidade | |
endereco | varchar | 256 | N | Endereço | |
uf | varchar | 256 | N | Estado | |
bairro | varchar | 256 | N | Bairro | |
cep | varchar | 256 | N | Cep | |
codpraca | varchar | 256 | N | Código da Praça | |
praca | varchar | 256 | N | Nome da Praça | |
tipofj | varchar | 256 | N | Indica se é pessoa Física ou Jurídica (F ou J) | |
regiao | varchar | 256 | N | Nome da Região | |
codigo_atividade1 | varchar | 256 | N | Código da Atividade do Cliente | |
latitude | varchar | 256 | N | Latitude do Cliente | |
longitude | varchar | 256 | N | Longitude do Cliente | |
id_distribuidor | varchar | 256 | N | Identificador único do Distribuidor (CNPJ da filial) | |
codigo_filial | varchar | 256 | N | Código da filial. | |
data_exclusao | date | N | Data da exclusão lógica. | ||
Tabela utilizada para armazenar as informações dos clientes.
- Coluna utilizada para agrupamento e ligação com as fatos ou dimensões -> (codigo_cliente).
- Colunas utilizadas para agrupamento e ligação com as fatos ou dimensões -> (codigo_vendedor1, codigo_vendedor2, codigo_vendedor3).
2.3 - dim_vendedores
Tabela | DIM_VENDEDORES | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_filial | varchar | 256 | N | Código da Filial | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_usuario | varchar | 256 | N | S | Código do usuário na Máxima |
nome_vendedor | varchar | 256 | N | Nome do Vendedor | |
nome_supervisor | varchar | 256 | N | Nome do Supervisor | |
codigo_coordenador | varchar | 256 | N | Código do Coordenador | |
nome_coordenador | varchar | 256 | N | Nome do Coordenador | |
codigo_gerente | varchar | 256 | N | Código do Gerente | |
nome_gerente | varchar | 256 | N | Nome do Gerente | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
id_distribuidor | varchar | 256 | N | Identificador único do Distribuidor | |
status | varchar | 3 | N | Status do vendedor A – Ativo I – Inativo | |
Tabela utilizada para armazenar as informações dos vendedores.
- Colunas utilizadas para agrupamento e ligação com as fatos -> (codigo_vendedor, codigo_supervisor,codigo_coordenador,codigo_gerente, codigo_filial, codigo_usuario).
2.4 - dim_supervisores
Tabela | DIM_SUPERVISORES | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
nome_supervisor | varchar | 256 | N | Nome do Supervisor | |
codigo_coordenador | varchar | 256 | N | Código do Coordenador | |
nome_coordenador | varchar | 256 | N | Nome do Coordenador | |
codigo_gerente | varchar | 256 | N | Código do Gerente | |
nome_gerente | varchar | 256 | N | Nome do Gerente | |
codigo_filial | varchar | 256 | N | Código da Filial do Supervisor | |
id_distribuidor | varchar | 256 | N | Identificador único do distribuidor | |
Tabela utilizada para armazenar as informações dos supervisores.
- Colunas utilizadas para agrupamento e ligação com as fatos -> (codigo_supervisor,codigo_coordenador,codigo_gerente, codigo_filial).
2.5 - dim_filial
Tabela | DIM_FILIAL | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_filial | varchar | 256 | N | Código da Filial | |
codigo_grupo_filial | varchar | 256 | N | Código do Grupo de Filial | |
razaosocial | varchar | 256 | N | Razão Social | |
cgc | varchar | 256 | N | Número do CNPJ | |
tipo_documento | varchar | 256 | N | CNPJ | |
endereco | varchar | 256 | N | Endereço | |
bairro | varchar | 256 | N | Bairro | |
cidade | varchar | 256 | N | Cidade | |
uf | varchar | 256 | N | Estado | |
cep | varchar | 256 | N | Cep | |
Tabela utilizada para armazenar as informações das filiais.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_filia, codigo_grupo_filial).
2.6 - dim_produto
Tabela | DIM_PRODUTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_produto | varchar | 256 | N | Código do Produto | |
descricao_produto | varchar | 256 | N | Descrição do Produto | |
codigo_fornecedor | varchar | 256 | N | Código do Fornecedor | |
descricao_fornecedor | varchar | 256 | N | Descrição do Fornecedor | |
codigo_distrib | varchar | 256 | N | Distribuidora | |
codigo_depto | varchar | 256 | N | Código do Departamento | |
descricao_depto | varchar | 256 | N | Descrição do Departamento | |
codigo_secao | varchar | 256 | N | Código da Seção | |
descricao_secao | varchar | 256 | N | Descrição da Seção | |
codigo_marca | varchar | 256 | N | Código da Marca | |
descricao_marca | varchar | 256 | N | Descrição da Marca | |
codigo_fabrica | varchar | 256 | N | Código de Fábrica do Produto | |
codigo_categoria | varchar | 256 | N | Código da Categoria | |
categoria | varchar | 256 | N | Descrição da Categoria | |
codigo_auxiliar | varchar | 256 | N | Código de Barras | |
id_distribuidor | varchar | 256 | N | Identificador único do Distribuidor (CNPJ da filial) | |
codigo_filial | varchar | 256 | N | Código da filial. | |
diretorio_foto | varchar | 256 | N | URL com a foto do produto. | |
Tabela utilizada para armazenar as informações de produtos.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_produto).
2.7 - dim_pedido
Tabela | DIM_PEDIDO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
numero_pedido | numeric | 18 | N | Número do pedido do ERP | |
data_saida | date | N | Data da saída do pedido | ||
data_faturamento | date | N | Data do faturamento do pedido | ||
observacao | varchar | 256 | N | Observação | |
condvenda | float | 8 | N | Tipo de venda - Normal, bonificada, futura etc. (1 – Venda, 5 – Bonificação, 7 - Venda Futura, 11 – Troca, 13 – NF Manifesto (Saída), 14 – Venda Manifesto (ProntaEntrega), 24 – Bonificação (Pronta-Entrega). | |
id_pedido | numeric | 18 | N | Número pedido na máxima | |
Tabela utilizada para armazenar as informações dos pedidos (Data de emissão e do faturamento do pedido).
- Coluna principal para agrupamento e ligação com as fatos -> (numero_pedido).
2.8 - dim_nota_fiscal
Tabela | DIM_NOTA_FISCAL | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
numero_pedido | numeric | 18 | N | Número do pedido | |
numero_nota_fiscal | numeric | 18 | N | Número da Nota fiscal | |
numero_serie_nota_fiscal | varchar | 256 | N | Número de Série | |
codigo_operacao | varchar | 256 | N | Código do tipo de operação 0 - Registro incluído 1 - Registro atualizado 2 - Registro excluído | |
tipo_operacao | varchar | 256 | N | Descrição da operação S - Saída SB - Saída Bonificação | |
codigo_fiscal | varchar | 256 | N | Código Fiscal | |
data_saida | date | N | Data de Saída da nota | ||
datavedata_saidanda | date | N | Data de Saída da nota | ||
data_faturamento | date | N | Data de Faturamento da nota | ||
observacao | varchar | 256 | N | Observação | |
Tabela utilizada para armazenar as informações de NF’S e NUMPED’S.
- Coluna principal para agrupamento e ligação com as fatos -> (numero_pedido).
2.8 - dim_gerente
Tabela | DIM_GERENTE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_gerente | varchar | 256 | N | Código do Gerente | |
nome_gerente | varchar | 256 | N | Nome do Gerente | |
codigo_filial | varchar | 256 | N | Código da Filial | |
Tabela utilizada para armazenar as informações dos gerentes.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_gerente).
2.9 - dim_acessodados
Tabela | DIM_ACESSODADOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_usuario | varchar | 256 | N | Código usuário na Máxima | |
codigo_dados | varchar | 256 | N | Enumerador que denomina o tipo de entidade (1 - PLANO DE PAGAMENTO, 2 - COBRANÇA, 3 - DEPARTAMENTO, 4 - SEÇÃO, 5 - SUPERVISOR, 6 - FILIAL, 7 - REGIÃO, 99- FORNECEDOR) | |
key_dados | varchar | 256 | N | Código da Entidade | |
Tabela utilizada para armazenar as informações de entidades e suas respectivas chaves de acesso.
- Coluna principal para agrupamento e ligação com as fatos -> (key_dados, codigo_dados, codigo_usuario).
OBS: Tabela utilizada preferencialmente em subselect, para retorno das informações de acesso a dados.
2.10 - dim_carteira_cli_por_vendedor
Tabela | DIM_CARTEIRA_CLI_POR_VENDEDOR | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
nome_vendedor | varchar | 256 | N | Nome do Vendedor | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
Tabela utilizada para armazenar as informações da quantidade de clientes na carteira por vendedor.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_vendedor).
2.11 - dim_cliente_localizacao
Tabela | DIM_CLIENTE_LOCALIZACAO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
fantasia | varchar | 256 | N | Nome fantasia da empresa (Pessoa Jurídica). | |
razaosocial | varchar | 256 | N | Razão Social | |
cidade | varchar | 256 | N | Cidade | |
bairro | varchar | 256 | N | Bairro | |
endereco | varchar | 256 | N | Endereço | |
estado | varchar | 256 | N | UF | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
tipo_fj | varchar | 256 | N | Pessoa Física ou Jurídica (F ou J) | |
latitude | varchar | 256 | N | Latitude do Cliente | |
longitude | varchar | 256 | N | Longitude do Cliente | |
latitude_roteirizador | varchar | 256 | N | Latitude do Cliente do roteirizador | |
longitude_roteirizador | varchar | 256 | N | Longitude do Cliente do roteirizador | |
Tabela utilizada para armazenar as informações de Geolocalização dos clientes, e suas denominações.
- Colunas para ligação com as fatos -> (codigo_vendedor, codigo_cliente).
2.12 - dim_data
Tabela | DIM_DATA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
ano | int | 4 | N | Ano | |
mes | int | 4 | N | Mês | |
dia | int | 4 | N | Dia do Mês | |
data_completa | date | N | Data completa(dia, mês, ano) | ||
Tabela utilizada para armazenar as informações de Data(dia, mês e ano) a partir do dia 01/06/2022.
OBS: Pode ser utilizada para realizar ligações e busca de datas específicas, utilizando subselect.
2.13 - dim_data_faturamento
Tabela | DIM_DATA_FATURAMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
ano | int | 4 | N | Ano | |
mes | int | 4 | N | Mês | |
dia | int | 4 | N | Dia do Mês | |
datacompleta | date | N | Data completa do faturamento(dia, mês, ano) | ||
Tabela utilizada para armazenar as informações de Data(dia, mês e ano) referente a data de faturamento.
OBS: Pode ser utilizada para realizar ligações e busca de datas específicas de faturamento, utilizando subselect.
2.14 - dim_eventos_positivados
Tabela | DIM_EVENTOS_POSITIVADOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_supervisor | varchar | 256 | N | Código do Supervisor | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
positivados | numeric | 18 | N | Quantidade de positivados | |
Tabela utilizada para armazenar as informações de eventos que houveram positivação(somatório de positivados), e suas respectivas entidades.
- Colunas para ligação com as fatos -> (codigo_vendedor, codigo_supervisor, codigo_usuario).
2.15 - dim_eventos_qtd_cli_carteira
Tabela | DIM_EVENTOS_QTD_CLI_CARTEIRA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
nome_vendedor | varchar | 256 | N | Nome do Vendedor | |
qtd_cli_carteira | numeric | 18 | N | Quantidade de clientes na carteira do Vendedor | |
Tabela utilizada para armazenar as informações de quantidade de clientes da carteira relacionados a eventos realizados.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_vendedor).
1.16 - dim_eventos_qtde_agendamentos
Tabela | DIM_EVENTOS_QTDE_AGENDAMENTOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
agendado | varchar | 256 | N | Verifica se o cliente está agendado ou não (S ou N) | |
sequencia | int | 4 | N | Sequência prevista | |
dataini | date | N | Data início | ||
dataterm | date | N | Data fim | ||
tipoagenda | varchar | 256 | N | Rotina do tipo de agenda (COMPMOV, COMPALT, COMPHIST, COMP) | |
Tabela utilizada para armazenar as informações de eventos agendados, e a sequência prevista dos eventos.
- Colunas para ligação com as fatos -> (codigo_vendedor, codigo_usuario,codigo_cliente).
2.17 - dim_eventos_qtde_equipes
Tabela | DIM_EVENTOS_QTDE_EQUIPES | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
qtdequipe | numeric | 18 | N | Quantidade de Equipes | |
qtdvendedores | numeric | 18 | N | Quantidade de Vendedores | |
qtdsupervs | numeric | 18 | N | Quantidade de Supervisores | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
Tabela utilizada para armazenar as informações de eventos, apresentando um total de supervisores e vendedores.
- Coluna principal para agrupamento e ligação com as fatos -> (codigo_vendedor).
1.18 - dim_eventos_sequencia_prevista
Tabela | DIM_EVENTOS_SEQUENCIA_PREVISTA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_cliente | varchar | 256 | N | Código do Cliente | |
total_em_ordem | numeric | 18 | N | Total de clientes na ordem prevista | |
total_fora_ordem | numeric | 18 | N | Total de clientes fora da ordem prevista | |
porce_ordem | numeric | 18 | N | Porcentagem de visitados na Ordem Prevista | |
Tabela utilizada para armazenar as informações de sequência previstas, e as porcentagens calculadas com base na sequência.
- Colunas para ligação com as fatos -> (codigo_vendedor, codigo_usuario,codigo_cliente).
2.19 - dim_eventos_tabela_agendados
Tabela | DIM_EVENTOS_TABELA_AGENDADOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_vendedor | varchar | 256 | N | Código do Vendedor | |
codigo_usuario | varchar | 256 | N | Código do usuário na Máxima | |
data_inicio | date | N | Data ínicio do agendamento | ||
data_fim | date | N | Data fim do agendamento | ||
data_visita | date | N | Data da visita | ||
codigo_cliente | varchar | 256 | N | Código do Cliente | |
Tabela utilizada para armazenar as informações de visitas realizadas, e suas respectivas datas.
- Colunas para ligação com as fatos -> (codigo_vendedor, codigo_usuario,codigo_cliente).
2.20 - dim_acessoentidades
Tabela | DIM_ACESSOENTIDADES | ||||
|---|---|---|---|---|---|
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_usuario | varchar | 256 | N | Código do Usuário | |
codigo_entidade | varchar | 256 | N | Código da entidades Regiões - codigo_entidade = 1 Fornecedor - codigo_entidade = 2 Departamento - codigo_entidade = 3 Seções - codigo_entidade = 4 Transportadoras - codigo_entidade = 5 | |
chave_entidade | varchar | 256 | N | Código da entidades (Regiões se codigo_entidade = 1, Fornecedor se codigo_entidade = 2,Departamento se codigo_entidade = 3, Seções se codigo_entidade = 4, Transportadoras se codigo_entidade = 5) | |
codigo_operacao | varchar | 256 | N | Código do tipo de operação 0 - Registro incluído 1 - Registro atualizado 2 - Registro excluído | |
Tabela utilizada para verificação das entidades cadastradas por perfil de usuário.
- Coluna para ligação com as fatos ou dimensões ->(codigo_usuario).
2.21 - dim_fornecedor
Tabela | DIM_FORNECEDOR | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_fornecedor | varchar | 256 | N | Código do Fornecedor | |
fornecedor | varchar | 256 | N | Descrição do Fornecedor | |
fantasia | varchar | 256 | N | Nome Fantasia do Fornecedor | |
cnpj | varchar | 256 | N | CNPJ do Fornecedor | |
tipo_documento | varchar | 256 | N | TIpo documento (CNPJ ou CPF) | |
cidade | varchar | 256 | N | Cidade | |
estado | varchar | 256 | N | Estado | |
id_distribuidor | varchar | 256 | N | Identificador único do Distribuidor | |
Tabela utilizada para armazenar as informações dos fornecedores.
- Coluna para ligação com as fatos ou dimensões ->(codigo_fornecedor).
2.22 - dim_empregado
Tabela | DIM_EMPREGADO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
matricula | NUMERIC | N | Identificador único do empregado (para motoristas, tipo M, equivale ao código do motorista) | ||
codigo_filial | VARCHAR | N | Código da filial onde o empregado está lotado | ||
nome | VARCHAR | N | Nome completo do empregado | ||
codigo_setor | VARCHAR | N | Código do setor do empregado | ||
VARCHAR | N | E-mail institucional ou de contato do empregado | |||
codigo_veiculo | VARCHAR | N | Código do veículo associado ao empregado (se aplicável) | ||
nome_guerra | VARCHAR | N | Nome de guerra ou nome abreviado do empregado | ||
telefone | VARCHAR | N | Número de telefone fixo do empregado | ||
celular | VARCHAR | N | Número de celular do empregado | ||
tipo | VARCHAR | N | Tipo do empregado (ex: M-motorista, etc) | ||
data_validade_cnh | DATE | N | Data de validade da CNH do motorista | ||
cpf | VARCHAR | N | CPF do empregado | ||
situacao | VARCHAR | N | Situação funcional do empregado (A-ativo, I-inativo, etc) | ||
data_exclusao | DATE | N | Data em que o empregado foi excluído do sistema (se aplicável) | ||
codigo_usuario | VARCHAR | N | Código do usuário associado ao empregado | ||
tipo_motorista | VARCHAR | N | Tipo de motorista M - Motorista X - Motorista agregado ou terceirizado | ||
endereco | VARCHAR | N | Endereço residencial do empregado | ||
bairro | VARCHAR | N | Bairro do endereço do empregado | ||
cidade | VARCHAR | N | Cidade do endereço do empregado | ||
estado | VARCHAR | N | Estado do endereço do empregado | ||
excluido | VARCHAR | N | Indicador de exclusão lógica (S/N) | ||
Tabela de referência com informações cadastrais de todos os empregados da empresa, incluindo motoristas, encarregados e auxiliares.
Pode ser usada para enriquecer fatos operacionais com nome, tipo, endereço, contato e status de exclusão.
Coluna para ligação com as fatos ou dimensões: dim_empregado.matricula
Faça a junção com fato_entregas: (dim_empregado.matricula = fato_entregas.codigo_motorista)
Faça a junção por empregado para motorista e ajudantes → (
Motorista: (dim_empregado.matricula → fato_carregamentos.codigo_motorista)
Ajudante1: (dim_empregado.matricula → fato_carregamentos. codigo_ajudante1)
Ajudante2: (dim_empregado.matricula → fato_carregamentos. codigo_ajudante2 )
Ajudante3: (dim_empregado.matricula → fato_carregamentos. codigo_ajudante3 )
2.23 - dim_veiculo
Tabela | DIM_VEICULO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_veiculo | varchar | N | Identificador único do veículo | ||
descricao | varchar | N | Descrição do veículo | ||
placa | varchar | N | Placa do veículo | ||
marca | varchar | N | Marca do veículo | ||
quantidade_palete | numeric | N | Capacidade de paletes do veículo | ||
volume | numeric | N | Volume útil do veículo (m³) | ||
peso_carga_kg | numeric | N | Peso máximo de carga do veículo (kg) | ||
situacao | varchar | N | Situação do veículo (ativo, inativo, etc) | ||
tipo_veiculo | varchar | N | Tipo do veículo (caminhão, van, etc) | ||
proprio | varchar | N | Indicador se o veículo é próprio (S/N) | ||
codigo_filial | varchar | N | Código da filial à qual o veículo pertence | ||
altura | numeric | N | Altura do veículo (metros) | ||
largura | numeric | N | Largura do veículo (metros) | ||
comprimento | numeric | N | Comprimento do veículo (metros) | ||
observacao | varchar | N | Campo de observações gerais sobre o veículo | ||
rastreado | varchar | N | Indica se o veículo é rastreado (S/N) | ||
codigo_localizacao | varchar | N | Código da localização atual ou padrão do veículo | ||
uf_placa_veiculo | varchar | N | Estado da placa do veículo | ||
cidade_placa_veiculo | varchar | N | Cidade da placa do veículo | ||
veiculo_generico | varchar | N | Indicador de uso como veículo genérico (S/N) | ||
codigo_rota_principal | numeric | N | Código da rota principal associada ao veículo | ||
excluido | varchar | N | Indicador de exclusão lógica (S/N) | ||
Tabela de referência dos veículos utilizados nos carregamentos, contendo especificações como placa,
marca, capacidade de carga, volume e rastreamento.
Faça a junção com fato_carregamentos: (dim_veiculo.codigo_veiculo → fato_carregametnos. codigo_veiculo)
2.24 - dim_usuario_motorista
Tabela | DIM_USUARIO_MOTORISTA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | numeric | N | Identificador único do usuário | ||
login | varchar | N | Login de acesso do usuário no sistema | ||
nome | varchar | N | Nome completo do usuário | ||
data_cadastro | date | N | Data em que o usuário foi cadastrado no sistema | ||
excluido | varchar | N | Indicador de exclusão lógica (S/N) | ||
id_empregado | numeric | N | Referência ao empregado vinculado (matrícula) | ||
tipo | varchar | N | Tipo de usuário (ex: motorista, encarregado, etc) | ||
preferencias_rotas | varchar | N | Preferências de rotas configuradas para o usuário | ||
apelido | varchar | N | Apelido ou nome de guerra do usuário | ||
carreteiro | varchar | N | Indica se o usuário é carreteiro (S/N) | ||
data_ultimo_logon | date | N | Data do último login do usuário | ||
encarregado | numeric | N | ID do encarregado associado (se aplicável) | ||
id_arquivo | numeric | N | ID do arquivo associado (se aplicável) | ||
id_jornada | numeric | N | ID da jornada associada (se aplicável) | ||
id_motorista | varchar | N | Código do motorista (utilizado em joins com fato_entregas) | ||
telefone | varchar | N | Telefone do usuário | ||
id_usuario_maxima | varchar | N | Identificador do usuário na plataforma Maxima | ||
qtd_dias_busca_painel | varchar | N | Quantidade de dias configurados para busca no painel | ||
tipo_usuario | varchar | N | Classificação do tipo de usuário | ||
varchar | N | E-mail do usuário | |||
cargo | varchar | N | Cargo ou função do usuário | ||
Tabela que armazena os dados dos usuários do aplicativo MaxGestão que exercem a função de motorista ou operadores logísticos.
Faça a junção com fato_entregas: (dim_usuario_motorista.id_motorista → fato_entregas.codigo_motorista)
2.25 - dim_ramo_atividade
Tabela | DIM_RAMO_ATIVIDADE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_atividade | varchar | 256 | N | Código da atividade econômica conforme cadastro da empresa | |
ramo_atividade | varchar | 256 | N | Descrição textual do ramo de atividade | |
percentual_desconto | numeric | 18,4 | N | Percentual de desconto aplicado para o ramo de atividade | |
calcula_st | varchar | 256 | N | Indicador se a Substituição Tributária (ST) é calculada (S/N) | |
codigo_atividade_principal | varchar | 256 | N | Código da atividade principal associada à atividade secundária | |
excluido | varchar | 256 | N | Indicador se o registro foi logicamente excluído (S = sim, N = não) | |
Tabela com os ramos de atividade dos clientes (ex: mercado, restaurante, padaria), permitindo segmentações e agrupamentos.
Faça a junção por clientes: (dim_cliente.codigo_atividade → dim_ramo_atividade.codigo_atividade)
Observação: Indiretamente relacionada às fato_entregas pelo cliente (fato_entregas.codigo_cliente)
2.26 - dim_situacao_entrega
Tabela | DIM_SITUACAO_ENTREGA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | varchar | 256 | N | Código da situação da entrega EN - ENTREGUE DT - DEVOLUCAO TOTAL DP - DEVOLUÇÃO PARCIAL RE - REENTREGA CK - CHECKIN FN - FINALIZADA PD - PENDENTE EP - ESPERA RP - RECEBIMENTO PENDENTE SD - SOLICITADA DEVOLUÇÃO | |
situacao_entrega | varchar | 256 | N | Descrição legível da situação da entrega | |
Tabela que traduz os códigos de situação de entrega.
Faça a junção com fato_entregas: (dim_situacao_entrega.id → fato_entregas.id_situacao_entrega)
2.27 - dim_situacao_romaneio
Tabela | DIM_SITUACAO_ROMANEIO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | integer | N | Identificador incremental da situação do romaneio 1 - INICIADO 2 - FINALIZADO 3 - FECHADO 4 - CANCELADO 5 - ABERTO | ||
situacao_romaneio | varchar | 256 | N | Descrição da situação do romaneio | |
Tabela de domínio para as situações do romaneio logístico.
Faça a junção com fato_carregamentos: (dim_situacao_romaneio.id → fato_carregamentos.id_situacao_romaneio)
2.28 - dim_destino_carregamento
Tabela | DIM_DESTINO_CARREGAMENTO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | integer | N | Identificador incremental do destino de carregamento | ||
destino_carregamento | varchar | 256 | N | Descrição do destino do carregamento | |
Tabela de referência dos destinos utilizados nos carregamentos, com ID gerado automaticamente.
Faça a junção com fato_carregamentos: (dim_destino_carregamento.id → fato_carregamentos.id_destino_carregamento)
2.29 - dim_atividade_fornecedor
Tabela | DIM_ATIVIDADE_FORNECEDOR | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_atividade | varchar | 256 | N | Identificador incremental do destino de carregamento | |
codigo_fornecedor | varchar | 256 | N | Descrição do destino do carregamento | |
descricao_atividade_fornecedor | varchar | 256 | N | Descrição da atividade do fornecedor | |
codigo_cliente | varchar | 256 | N | Código do cliente | |
codigo_atividade_cliente | varchar | 256 | N | Código da atividade do cliente | |
Tabela de referência das atividades dos fornecedores.
Faça a junção com dim_fornecedor: (dim_atividade_fornecedor.codigo_fornecedor → dim_fornecedor.codigo_fornecedor)
Faça a junção com dim_cliente: (dim_atividade_fornecedor.codigo_cliente → dim_cliente.codigo_cliente)
2.30 - dim_grupo_filial
Tabela | DIM_GRUPO_FILIAL | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_grupo_filial | varchar | 256 | N | Código do grupo de filial | |
nome_grupo_filial | varchar | 256 | N | Descrição do grupo de filial | |
Tabela de referência dos grupos de filiais.
Faça a junção com dim_filial: (dim_grupo_filial.codigo_grupo_filial → dim_filial.codigo_grupo_filial)
2.31 - dim_industria_relacao_fornecedor
Tabela | DIM_INDUSTRIA_RELACAO_FORNECEDOR | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_fornecedor | varchar | 256 | N | Código do fornecedor | |
fornecedor | varchar | 256 | N | Descrição do fornecedor | |
codigo_industria | varchar | 256 | N | Código da indústria | |
industria | varchar | 256 | N | Descrição da indústria | |
cnpj | varchar | 256 | N | CNPJ | |
Tabela que relaciona fornecedores e industrias.
Faça a junção com dim_fornecedor: (dim_industria_relacao_fornecedor.codigo_fornecedor → dim_fornecedor.codigo_fornecedor)
Faça a junção com dim_industria: (dim_industria_relacao_fornecedor.codigo_industria → dim_industria.codigo_industria)
2.32 - dim_industria
Tabela | DIM_INDUSTRIA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_industria | varchar | 256 | N | Código da indústria | |
industria | varchar | 256 | N | Descrição da indústria | |
cnpj | varchar | 256 | N | CNPJ da indústria | |
Tabela de referências de indústrias.
Faça a junção com dim_industria_relacao_fornecedor: (dim_industria.codigo_industria → dim_industria_relacao_fornecedor.codigo_industria)
2.33 - dim_motivo_justificativa
Tabela | DIM_MOTIVO_JUSTIFICATIVA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id | int | N | Identificador do motivo de justificativa | ||
descricao | varchar | 256 | N | Descrição do motivo de justificativa | |
codigo_operacao | varchar | 256 | N | Código do tipo de operação 0 - Registro incluído 1 - Registro atualizado 2 - Registro excluído | |
Tabela de referências dos motivos de justificativa de visita.
Faça a junção com atendimentos: (dim_motivo_justificativa.id → fato_atendimento.codigo_justificativa
Faça a junção com eventos: (dim_motivo_justificativa.id → fato_eventos.justificativa_nao_venda_codigovinculacao
2.34 - dim_usuario
Tabela | DIM_USUARIO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
codigo_usuario | bigint | N | Código único do usuário Máxima. | ||
codigo_vendedor | varchar | 80 | N | Código do vendedor vinculado. | |
nome_usuario | varchar | 256 | N | Nome do usuário. | |
data_cadastro | date | Data de cadastro do usuário. | |||
data_exclusao | date | Data de Exclusão do usuário. | |||
status | varchar | 20 | Status do usuário. A - Ativo I - Inativo | ||
Tabela de referências dos usuários da Máxima.
Faça a junção com vendedores: (dim_usuario.codigo_vendedor → dim_vendedores.codigo_vendedor)
2.35 - dim_cidade
Tabela | DIM_CIDADE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_cidade | varchar | 64 | S | Identificador de cidade no maxPesquisa (texto). | |
codigo_ibge | varchar | 32 | N | Código IBGE da cidade (texto). | |
nome_cidade | varchar | 255 | N | Nome da cidade. | |
uf | varchar | 8 | N | UF (sigla do estado). | |
id_cidade_mp | bigint | N | ID da cidade no maxPesquisa. NULL se não existir na MXPCIDADE. | ||
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de cidades.
A coluna id_cidade_mp deverá ser usada para relacionar com as dimensões e fatos do maxPesquisa.
Faça a junção com o endereço: (dim_mp_endereco.id_cidade → dim_cidade.id_cidade_mp)
2.36 - dim_mp_atividade
Tabela | DIM_MP_ATIVIDADE | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_atividade | bigint | S | Identificador da atividade no maxPesquisa. | ||
atividade | varchar | 150 | N | Nome da atividade. | |
excluido | varchar | 1 | N | Flag lógica de exclusão. | |
data_inicio_vigencia | date | N | Data de início de vigência. | ||
data_fim_vigencia | date | N | Data de fim de vigência. | ||
Dimensão de atividades.
Faça a junção com perguntas: (dim_mp_pergunta.id_atividade → dim_mp_atividade.id_atividade)
Faça a junção com relatório de atividades: (fato_mp_relatorio_atividades.id_atividade → dim_mp_atividade.id_atividade)
2.37 - dim_mp_endereco
Tabela | DIM_MP_ENDERECO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pdp | bigint | S | Identificador do ponto de pesquisa (PDP) do maxPesquisa. | ||
id_endereco | bigint | S | Identificador do endereço. | ||
id_cidade | bigint | N | Identificador da cidade. | ||
tipo_endereco | varchar | 20 | N | Tipo de endereço (ex.: COMERCIAL). | |
logradouro | varchar | 255 | N | Logradouro. | |
numero | varchar | 20 | N | Número. | |
complemento | varchar | 255 | N | Complemento. | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de endereços dos pontos de pesquisa.
Faça a junção com ponto de pesquisa: (dim_mp_endereco.id_pdp → dim_mp_ponto_pesquisa.id_pdp)
Faça a junção com cidade: (dim_mp_endereco.id_cidade → dim_cidade.id_cidade_mp)
2.38 - dim_mp_item_pesquisado
Tabela | DIM_MP_ITEM_PESQUISADO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_item | bigint | S | Identificador do item pesquisado no maxPesquisa. | ||
descricao | varchar | 255 | N | Descrição do item pesquisado. | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de itens pesquisados.
Faça a junção com as respostas: (bridge_mp_resposta_itens_pesquisados.id_item → dim_mp_item_pesquisado.id_item)
and (bridge_mp_resposta_itens_pesquisados.id_resposta → fato_mp_respostas.id_resposta)
2.39 - dim_mp_pergunta
Tabela | DIM_MP_PERGUNTA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pergunta | bigint | S | Identificador da pergunta no maxPesquisa. | ||
id_atividade | bigint | N | Chave para a atividade à qual a pergunta pertence. | ||
pergunta | varchar | 255 | N | Descrição/enunciado da pergunta. | |
pergunta_sim_nao | varchar | 10 | N | Indicador de pergunta Sim/Não (ex.: 1=Sim/ 0=Não). | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de perguntas das pesquisas.
Faça a junção com resposta: (fato_mp_respostas.id_pergunta → dim_mp_pergunta.id_pergunta)
2.40 - dim_mp_ponto_pesquisa
Tabela | DIM_MP_PONTO_PESQUISA | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_pdp | bigint | S | Identificador do ponto de pesquisa (PDP) no maxPesquisa. | ||
razao_social | varchar | 255 | N | Razão social. | |
fantasia | varchar | 255 | N | Nome fantasia. | |
cnpj | varchar | 50 | N | CNPJ do estabelecimento. | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de pontos de pesquisa.
Faça a junção com respostas: (fato_mp_respostas.id_pdp → dim_mp_ponto_pesquisa.id_pdp)
Faça a junção com relatório de atividades: (fato_mp_relatorio_atividades.id_pdp → dim_mp_ponto_pesquisa.id_pdp)
Faça a junção com endereço: (dim_mp_endereco.id_pdp → dim_mp_ponto_pesquisa.id_pdp)
2.41 - dim_mp_usuario
Tabela | DIM_MP_USUARIO | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_usuario | bigint | S | Identificador do usuário (promotor, supervisor) no maxPesquisa. | ||
id_usuario_superv | bigint | N | Identificador do supervisor. Se id_usuario = id_usuario_superv, então é um supervisor. | ||
promotor | varchar | 150 | N | Nome do usuário/supervisor/promotor. | |
excluido | char | 1 | N | Flag lógica de exclusão. | |
Dimensão de usuários/supervisores/promotores.
Faça a junção com respostas: (fato_mp_respostas.id_usuario → dim_mp_usuario.id_usuario)
Faça a junção com relatório de atividades: (fato_mp_relatorio_atividades.id_usuario → dim_mp_usuario.id_usuario)
3 - Bridges (Pontes)
3.1 - bridge_mp_resposta_itens_pesquisados
Tabela | BRIDGE_MP_RESPOSTA_ITENS_PESQUISADOS | ||||
Coluna | Tipo | Tamanho | Obrigatório | PK | Observação |
id_resposta | bigint | S | Identificador da resposta (FATO_MP_RESPOSTAS). | ||
id_item | bigint | S | Identificador do item pesquisado (DIM_MP_ITEM_PESQUISADO). | ||
excluido | char | 1 | N | Flag lógica de exclusão: S quando CODOPERACAO=2; N caso contrário. | |
Tabela ponte entre respostas e itens pesquisados.
Faça junções entre respostas e itens pesquisados: (id_resposta → fato_mp_respostas.id_resposta;
id_item → dim_mp_item_pesquisado.id_item)
Notas de versão
Data | Versão anterior | Versão atual | Alteração | Motivo |
25/04/2025 | 1.2 | 1.3 | fato_pedido_realizado estava com a coluna numpederp como INT(4), alterada para numeric(18) | Correção |
13/05/2025 | 1.3 | 1.4 |
| MAXINDV-216 – informações para Dashboards do maxMotorista |
20/05/2025 | 1.4 | 1.5 |
| Atualizar o Layout com fatos e dimensões disponíveis Observação: não houve alteração dos dados em produção, apenas adequação do Layout |
30/05/2025 | 1.5 | 1.6 |
| |
11/06/2025 | 1.6 | 1.7 |
| |
21/08/2025 | 1.7 | 1.8 |
| |
29/08/2025 | 1.8 | 1.9 |
| |
24/09/2025 | 1.9 | 2.0 |
|
4.0 Exemplos de SQL maxInsights
Este documento apresenta consultas SQL voltadas para geração de informações estratégicas, com foco em apoiar análises e decisões de negócio para clientes que utilizam o maxInsights.
Informações de atendimento
Visitas X Atendimentos
Relacionamento entre fato_atendimento e fato_visitas_realizadas
SELECT fa.sequencia_realizada_cliente as sequencia_realizada, fa.codigo_vendedor, fa.data_atendimento, fa.horainicio_atendimento AS inicio, fa.horafim_atendimento AS fim, fa.tempo_atendimento, fa.tempo_deslocamento, fa.codigo_cliente, fa.numero_pedido, fvr.id_rota, CASE WHEN dmj.id IS NULL THEN '' ELSE dmj.id || ' - ' || dmj.descricao END AS motivo, fvr.observacao, CASE WHEN fvr.id_rota IS NULL OR fvr.id_rota = '0' THEN 'N' ELSE 'S' END AS agendado, fvr.pdv FROM fato_atendimento fa INNER JOIN fato_visitas_realizadas fvr ON fvr."data" = fa.data_atendimento AND fvr.codigo_vendedor = fa.codigo_vendedor AND coalesce(fa.numero_pedido,0) = coalesce(fvr.numero_pedido,0) AND coalesce(fa.codigo_justificativa,'0') = coalesce(fvr.codigo_justificativa,'0') LEFT JOIN dim_motivo_justificativa dmj ON dmj.id = fvr.motivo WHERE fa.codigo_vendedor = '10' --CODIGO do VENDEDOR (RCA) AND fa.data_atendimento = DATE '2025-10-7' --DATA DO ATENDIMENTO ORDER BY data_atendimento, codigo_vendedor, sequencia_realizada |
Agendamentos e visitas
Dados detalhados com:
- Ordem de agendamento de visitas
- Ordem de execução das visitas
- Visitas avulsas (não agendadas)
WITH params AS ( SELECT DATE '2025-10-28' AS data_, --DATA DA VISITA CAST('999' AS TEXT) AS codigo_vendedor_ --CODIGO DO VENDEDOR ), /* ===================== [A] Recortes base ===================== */ fvr_cut AS ( -- visitas realizadas (já tipado) SELECT data::date AS data, hora AS hora_raw, codigo_cliente, CAST(REPLACE(id_rota, '.0', '') AS INT) AS id_rota, sequencia_realizada AS sequencia_realizada_original, codigo_vendedor, motivo, pdv, numero_pedido, codigo_justificativa, observacao FROM fato_visitas_realizadas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ AND COALESCE(motivo, 0) <> 999 ), fpv_cut AS ( -- planejamento (já tipado) SELECT data::date AS data, '23:59:59' AS hora_pln_raw, codigo_cliente, CAST(id_rota AS INT) AS id_rota, sequencia, codigo_vendedor FROM fato_planejamento_visitas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ ), /* ===================== [C] Visitas + join com fato_atendimento ===================== */ visitas AS ( SELECT fvr.data, fvr.codigo_cliente, CAST(fvr.id_rota AS VARCHAR) AS id_rota, TRY_CAST(fpv.sequencia AS INTEGER) AS sequencia_planejada, -- força tipo TRY_CAST(fa.sequencia_realizada_cliente AS INTEGER) AS sequencia_realizada, -- força tipo fvr.codigo_vendedor, CASE WHEN dmj.id IS NULL THEN '' ELSE dmj.descricao END AS motivo, fvr.pdv, fvr.numero_pedido, fvr.codigo_justificativa, fvr.observacao, fa.tempo_atendimento, fa.tempo_deslocamento FROM fato_atendimento fa INNER JOIN fvr_cut fvr ON fvr.data = fa.data_atendimento AND fvr.codigo_vendedor = fa.codigo_vendedor /* match por pedido/justificativa (exclusivo) */ AND coalesce(fa.numero_pedido,0) = coalesce(fvr.numero_pedido,0) AND coalesce(fa.codigo_justificativa,'0') = coalesce(fvr.codigo_justificativa,'0') LEFT JOIN fpv_cut fpv ON fpv.data = fvr.data AND fpv.id_rota = fvr.id_rota AND fpv.codigo_vendedor = fvr.codigo_vendedor AND fpv.codigo_cliente = fvr.codigo_cliente AND fpv.id_rota IS NOT NULL AND fpv.id_rota <> 0 LEFT JOIN dim_motivo_justificativa dmj ON dmj.id = fvr.motivo ), /* ===================== [E] SELECT final: bloco visitas ===================== */ bloco_visitas AS ( SELECT DISTINCT /* garanta tipos inteiros aqui também */ TRY_CAST(v.sequencia_planejada AS INTEGER) AS sequencia_planejada, TRY_CAST(v.sequencia_realizada AS INTEGER) AS sequencia_realizada, v.data, v.codigo_cliente, v.id_rota, v.codigo_vendedor, v.motivo, v.observacao, CASE WHEN v.id_rota IS NULL OR v.id_rota = '0' THEN 'N' ELSE 'S' END AS agendado, v.pdv, v.tempo_atendimento, v.tempo_deslocamento, v.numero_pedido FROM visitas v ), /* ===================== [E2] Planejado que não virou visita (ANTI-JOIN) ===================== */ planejado_base AS ( SELECT TRY_CAST(fpv.sequencia AS INTEGER) AS sequencia_planejada, -- inteiro CAST(0 AS INTEGER) AS sequencia_realizada, -- inteiro (zero) fpv.data AS data, fpv.codigo_cliente, CAST(fpv.id_rota AS VARCHAR) AS id_rota, fpv.codigo_vendedor, '' AS motivo, '' AS observacao, CASE WHEN fpv.id_rota IS NULL OR fpv.id_rota = 0 THEN 'N' ELSE 'S' END AS agendado, '' AS pdv, '00:00:00' AS tempo_atendimento, '00:00:00' AS tempo_deslocamento, 0 as numero_pedido FROM fpv_cut fpv ), exec_keys AS ( SELECT DISTINCT data, codigo_vendedor, codigo_cliente, id_rota FROM fvr_cut ), bloco_planejado_nao_exec AS ( SELECT pb.* FROM planejado_base pb LEFT JOIN exec_keys k ON k.data = pb.data AND k.codigo_vendedor = pb.codigo_vendedor AND k.codigo_cliente = pb.codigo_cliente AND CAST(k.id_rota AS VARCHAR) = pb.id_rota WHERE k.data IS NULL ) /* ===================== [F] Resultado unificado (com tipos alinhados) ===================== */ SELECT * FROM bloco_visitas UNION ALL SELECT * FROM bloco_planejado_nao_exec ORDER BY data, codigo_vendedor, sequencia_realizada |
Indicadores de agendamentos e visitas
Cálculo dos indicadores:
- total_planejadas - total de visitas planejada
- total_visitas_realizadas - total de visitas realizadas
- visitas_realizadas_das_planejadas - quantas visitas planejadas foram realizadas
- total_visitas_nao_realizadas - quantas visitas planejadas não foram realizadas
- cumprimento_agenda_visitas - percentual de visitas planejadas realizadas
- tempo_medio_visita - tempo médio de duração das visitas
- tempo_medio_deslocamento - tempo médio de deslocamento/percurso
- visitas_convertidas - total de visitas convertidas em pedidos / positivas
- taxa_conversao - percentual de conversão / positivação
- visitas_avulsas - total de visitas avulsas / não planejadas
- top_10_motivos - 10 motivos de não compra mais frequentes
WITH totalizador AS ( WITH params AS ( SELECT DATE '2025-10-28' AS data_, --DATA DA VISITA CAST('999' AS TEXT) AS codigo_vendedor_ --CODIGO DO VENDEDOR ), /* ===================== [A] Recortes base ===================== */ fvr_cut AS ( -- visitas realizadas (já tipado) SELECT data::date AS data, hora AS hora_raw, codigo_cliente, CAST(REPLACE(id_rota, '.0', '') AS INT) AS id_rota, sequencia_realizada AS sequencia_realizada_original, codigo_vendedor, motivo, pdv, numero_pedido, codigo_justificativa, observacao FROM fato_visitas_realizadas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ AND COALESCE(motivo, 0) <> 999 ), fpv_cut AS ( -- planejamento (já tipado) SELECT data::date AS data, '23:59:59' AS hora_pln_raw, codigo_cliente, CAST(id_rota AS INT) AS id_rota, sequencia, codigo_vendedor FROM fato_planejamento_visitas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ ), /* ===================== [C] Visitas + join com fato_atendimento ===================== */ visitas AS ( SELECT fvr.data, fvr.codigo_cliente, CAST(fvr.id_rota AS VARCHAR) AS id_rota, TRY_CAST(fpv.sequencia AS INTEGER) AS sequencia_planejada, -- força tipo TRY_CAST(fa.sequencia_realizada_cliente AS INTEGER) AS sequencia_realizada, -- força tipo fvr.codigo_vendedor, CASE WHEN dmj.id IS NULL THEN '' ELSE dmj.descricao END AS motivo, fvr.pdv, fvr.numero_pedido, fvr.codigo_justificativa, fvr.observacao, fa.tempo_atendimento, fa.tempo_deslocamento FROM fato_atendimento fa INNER JOIN fvr_cut fvr ON fvr.data = fa.data_atendimento AND fvr.codigo_vendedor = fa.codigo_vendedor /* match por pedido/justificativa (exclusivo) */ AND coalesce(fa.numero_pedido,0) = coalesce(fvr.numero_pedido,0) AND coalesce(fa.codigo_justificativa,'0') = coalesce(fvr.codigo_justificativa,'0') LEFT JOIN fpv_cut fpv ON fpv.data = fvr.data AND fpv.id_rota = fvr.id_rota AND fpv.codigo_vendedor = fvr.codigo_vendedor AND fpv.codigo_cliente = fvr.codigo_cliente AND fpv.id_rota IS NOT NULL AND fpv.id_rota <> 0 LEFT JOIN dim_motivo_justificativa dmj ON dmj.id = fvr.motivo ), /* ===================== [E] SELECT final: bloco visitas ===================== */ bloco_visitas AS ( SELECT DISTINCT /* garanta tipos inteiros aqui também */ TRY_CAST(v.sequencia_planejada AS INTEGER) AS sequencia_planejada, TRY_CAST(v.sequencia_realizada AS INTEGER) AS sequencia_realizada, v.data, v.codigo_cliente, v.id_rota, v.codigo_vendedor, v.motivo, v.observacao, CASE WHEN v.id_rota IS NULL OR v.id_rota = '0' THEN 'N' ELSE 'S' END AS agendado, v.pdv, v.tempo_atendimento, v.tempo_deslocamento, v.numero_pedido FROM visitas v ), /* ===================== [E2] Planejado que não virou visita (ANTI-JOIN) ===================== */ planejado_base AS ( SELECT TRY_CAST(fpv.sequencia AS INTEGER) AS sequencia_planejada, -- inteiro CAST(0 AS INTEGER) AS sequencia_realizada, -- inteiro (zero) fpv.data AS data, fpv.codigo_cliente, CAST(fpv.id_rota AS VARCHAR) AS id_rota, fpv.codigo_vendedor, '' AS motivo, '' AS observacao, CASE WHEN fpv.id_rota IS NULL OR fpv.id_rota = 0 THEN 'N' ELSE 'S' END AS agendado, '' AS pdv, '00:00:00' AS tempo_atendimento, '00:00:00' AS tempo_deslocamento, 0 as numero_pedido FROM fpv_cut fpv ), exec_keys AS ( SELECT DISTINCT data, codigo_vendedor, codigo_cliente, id_rota FROM fvr_cut ), bloco_planejado_nao_exec AS ( SELECT pb.* FROM planejado_base pb LEFT JOIN exec_keys k ON k.data = pb.data AND k.codigo_vendedor = pb.codigo_vendedor AND k.codigo_cliente = pb.codigo_cliente AND CAST(k.id_rota AS VARCHAR) = pb.id_rota WHERE k.data IS NULL ) /* ===================== [F] Resultado unificado (com tipos alinhados) ===================== */ SELECT * FROM bloco_visitas UNION ALL SELECT * FROM bloco_planejado_nao_exec ), -- ---------- util: transforma HH:MM:SS em segundos ---------- base AS ( SELECT t.*, CASE WHEN NULLIF(t.tempo_atendimento,'') IS NULL THEN NULL ELSE (CAST(SPLIT_PART(t.tempo_atendimento, ':', 1) AS INT) * 3600) + (CAST(SPLIT_PART(t.tempo_atendimento, ':', 2) AS INT) * 60) + CAST(SPLIT_PART(t.tempo_atendimento, ':', 3) AS INT) END AS tempo_atend_s, CASE WHEN NULLIF(t.tempo_deslocamento,'') IS NULL THEN NULL ELSE (CAST(SPLIT_PART(t.tempo_deslocamento, ':', 1) AS INT) * 3600) + (CAST(SPLIT_PART(t.tempo_deslocamento, ':', 2) AS INT) * 60) + CAST(SPLIT_PART(t.tempo_deslocamento, ':', 3) AS INT) END AS tempo_desl_s FROM totalizador t ), -- ---------- agregados principais (sem COUNT_IF) ---------- aggs AS ( SELECT COUNT(distinct sequencia_planejada) AS visitas_planejadas, COUNT(distinct sequencia_realizada) AS visitas_realizadas_total, COUNT(distinct CASE WHEN agendado = 'S' AND COALESCE(sequencia_realizada,0) > 0 THEN sequencia_planejada ELSE null END) AS visitas_realizadas_das_planejadas, COUNT(distinct CASE WHEN agendado = 'S' AND COALESCE(sequencia_realizada,0) = 0 THEN sequencia_planejada ELSE null END) AS visitas_nao_realizadas, --buscar cenário com planejadas não executadas AVG(NULLIF(tempo_atend_s, 0)) AS avg_visita_s, AVG(NULLIF(tempo_desl_s, 0)) AS avg_desloc_s, SUM(CASE WHEN COALESCE(sequencia_realizada,0) > 0 AND COALESCE(numero_pedido,0) > 0 THEN 1 ELSE 0 END) AS visitas_convertidas, COUNT(case when cast(sequencia_planejada as integer) is null and cast(sequencia_realizada as integer) is not null then sequencia_realizada else NULL end) AS visitas_avulsas FROM base ), -- ---------- KPIs já formatados ---------- kpis AS ( SELECT visitas_planejadas, visitas_realizadas_total, visitas_realizadas_das_planejadas, visitas_nao_realizadas, visitas_convertidas, visitas_avulsas, CASE WHEN visitas_planejadas = 0 THEN 0.0 ELSE ROUND((visitas_realizadas_das_planejadas::DECIMAL(18,6) / NULLIF(visitas_planejadas,0)) * 100, 2) END AS cumprimento_agenda_pct, CASE WHEN avg_visita_s IS NULL THEN '00:00:00' ELSE LPAD(CAST(FLOOR(avg_visita_s/3600) AS INT)::VARCHAR, 2, '0') || ':' || LPAD(CAST(FLOOR(MOD(avg_visita_s,3600)/60) AS INT)::VARCHAR, 2, '0') || ':' || LPAD(CAST(FLOOR(MOD(avg_visita_s,60)) AS INT)::VARCHAR, 2, '0') END AS tempo_medio_visita, CASE WHEN avg_desloc_s IS NULL THEN '00:00:00' ELSE LPAD(CAST(FLOOR(avg_desloc_s/3600) AS INT)::VARCHAR, 2, '0') || ':' || LPAD(CAST(FLOOR(MOD(avg_desloc_s,3600)/60) AS INT)::VARCHAR, 2, '0') || ':' || LPAD(CAST(FLOOR(MOD(avg_desloc_s,60)) AS INT)::VARCHAR, 2, '0') END AS tempo_medio_deslocamento, CASE WHEN visitas_realizadas_total = 0 THEN 0.0 ELSE ROUND((visitas_convertidas::DECIMAL(18,6) / NULLIF(visitas_realizadas_total,0)) * 100, 2) END AS taxa_conversao_pct FROM aggs ), -- ---------- principais justificativas de não venda ---------- justificativas AS ( SELECT LISTAGG(CASE WHEN NULLIF(TRIM(motivo),'') IS NULL THEN '[sem motivo]' ELSE TRIM(motivo) END, ', ') WITHIN GROUP (ORDER BY CASE WHEN NULLIF(TRIM(motivo),'') IS NULL THEN '[sem motivo]' ELSE TRIM(motivo) END) AS top_10_motivos, COUNT(*) AS qtde FROM base WHERE COALESCE(sequencia_realizada,0) > 0 AND COALESCE(numero_pedido,0) = 0 ORDER BY qtde DESC LIMIT 10 ) -- ==================== SAÍDA PRINCIPAL ==================== SELECT visitas_planejadas AS total_planejadas, visitas_realizadas_total AS total_visitas_realizadas, visitas_realizadas_das_planejadas, visitas_nao_realizadas AS total_visitas_nao_realizadas, cumprimento_agenda_pct AS cumprimento_agenda_visitas, tempo_medio_visita, tempo_medio_deslocamento, visitas_convertidas, taxa_conversao_pct AS taxa_conversao, visitas_avulsas, justificativas.top_10_motivos FROM kpis cross join justificativas |
Painel de auditória - visitas
Relacionamento entre as tabelas fato_visitas_realizadas, fato_atendimento, fato_eventos e fato_pedido_realizado, listadas de forma semelhante ao painel de auditoria.
WITH params AS ( SELECT DATE '2025-10-28' AS data_, --DATA DA VISITA cast('999' AS TEXT) AS codigo_vendedor_ --CODIGO DO VENDEDOR ), /* ===================== [A] Recortes base ===================== */ fvr_cut AS ( -- visitas realizadas (já tipado) SELECT data::date AS data, hora AS hora_raw, codigo_cliente, CAST(REPLACE(id_rota, '.0', '') AS int) AS id_rota, sequencia_realizada AS sequencia_realizada_original, codigo_vendedor, motivo, pdv, numero_pedido, codigo_justificativa, observacao FROM fato_visitas_realizadas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ AND COALESCE(motivo, 0) <> 999 ), fpv_cut AS ( -- planejamento (já tipado) SELECT data::date AS data, '23:59:59' AS hora_pln_raw, codigo_cliente, CAST(id_rota AS int) AS id_rota, sequencia, codigo_vendedor FROM fato_planejamento_visitas CROSS JOIN params WHERE codigo_vendedor = params.codigo_vendedor_ AND data::date = params.data_ ), /* ===================== [B] Hora do atendimento (fonte preferencial) ===================== */ hv AS ( SELECT a.data_atendimento::date AS data, a.codigo_vendedor AS codigo_vendedor, a.codigo_cliente AS codigo_cliente, a.horainicio_atendimento AS hora_ini_raw, a.horafim_atendimento AS hora_fim_raw, a.tempo_atendimento AS tempo_atend_raw, a.numero_pedido AS numero_pedido, a.codigo_justificativa AS codigo_justificativa, a.sequencia_realizada_cliente AS sequencia_realizada, a.tempo_deslocamento FROM fato_atendimento a CROSS JOIN params WHERE a.data_atendimento::date = params.data_ AND a.codigo_vendedor = params.codigo_vendedor_ ), /* ===================== [C] Normalizadores de hora (robusto) ===================== */ visitas AS ( SELECT fvr.data, REGEXP_REPLACE(COALESCE(hv.hora_ini_raw, fvr.hora_raw), '[^0-9]', '') AS h_ini_clean, REGEXP_REPLACE(hv.hora_fim_raw, '[^0-9]', '') AS h_fim_clean, fvr.hora_raw, hv.hora_ini_raw, hv.hora_fim_raw, hv.tempo_atend_raw, hv.tempo_deslocamento, fvr.codigo_cliente, CAST(fvr.id_rota AS varchar) AS id_rota, fvr.sequencia_realizada_original, fpv.sequencia AS sequencia_planejada, hv.sequencia_realizada, fvr.codigo_vendedor, fvr.motivo, fvr.pdv, fvr.numero_pedido, fvr.codigo_justificativa, fvr.observacao FROM fvr_cut fvr LEFT JOIN fpv_cut fpv ON fpv.data = fvr.data AND fpv.id_rota = fvr.id_rota AND fpv.codigo_vendedor = fvr.codigo_vendedor AND fpv.codigo_cliente = fvr.codigo_cliente AND fpv.id_rota IS NOT NULL AND fpv.id_rota <> 0 LEFT JOIN hv ON hv.data = fvr.data AND hv.codigo_vendedor = fvr.codigo_vendedor AND hv.codigo_cliente = fvr.codigo_cliente AND coalesce(hv.numero_pedido, 0) = coalesce(fvr.numero_pedido, 0) AND coalesce(hv.codigo_justificativa, '0') = coalesce(fvr.codigo_justificativa, '0') ), /* ===================== [D] Distância p/ PDV ===================== */ distancia_cliente AS ( SELECT a.data_atendimento, a.codigo_cliente, a.codigo_vendedor, a.numero_pedido, a.codigo_justificativa, a.horainicio_atendimento AS inicio_raw, a.horafim_atendimento AS fim_raw, a.tempo_atendimento AS atend_raw FROM fato_atendimento a INNER JOIN dim_cliente c ON c.codigo_cliente = a.codigo_cliente LEFT JOIN fato_eventos e ON CAST(e.data_hora_evento_tz AS date) = a.data_atendimento AND e.codigo_cliente = a.codigo_cliente AND e.codigo_usuario = a.codigo_usuario WHERE coalesce(e.justificativa_nao_venda_codigovinculacao, '0') = coalesce(a.codigo_justificativa, '0') AND coalesce(e.numero_pedido_rca, 0) = coalesce(a.numero_pedido, 0) AND e.tipo_evento IN ('PEDIDO','JUSTIFICATIVANAOVENDA') ), /* ===================== [E] SELECT final: bloco visitas ===================== */ bloco_visitas AS ( SELECT DISTINCT dv.codigo_filial, v.sequencia_planejada, v.sequencia_realizada, to_char( to_timestamp(NULLIF(LPAD(v.h_ini_clean, 6, '0'), ''), 'HH24MISS'), 'HH24:MI:SS' ) AS inicio, to_char( to_timestamp(NULLIF(LPAD(v.h_fim_clean, 6, '0'), ''), 'HH24MISS'), 'HH24:MI:SS' ) AS fim, v.tempo_atend_raw AS atend, v.tempo_deslocamento as percurso, fpr.numped, fpr.numpederp, v.data, v.codigo_cliente, dc.razaosocial AS nome_cliente, dc.latitude, dc.longitude, v.id_rota, v.codigo_vendedor, v.motivo AS motivo_id, CASE WHEN dmj.id IS NULL THEN '' ELSE dmj.id || ' - ' || dmj.descricao END AS motivo, CAST(fpr.vlpedido AS NUMERIC(18, 2)) AS pedido, CAST(fpr.vlatend AS NUMERIC(18, 2)) AS atendido, CAST(fpr.vlbonific AS NUMERIC(18, 2)) AS bonificacao, v.observacao AS observacao, CASE WHEN v.id_rota IS NULL OR v.id_rota = '0' THEN 'N' ELSE 'S' END AS agendado, v.pdv FROM visitas v LEFT JOIN dim_cliente dc ON dc.codigo_cliente = v.codigo_cliente LEFT JOIN dim_motivo_justificativa dmj ON dmj.id = v.motivo LEFT JOIN fato_pedido_realizado fpr ON fpr.data_completa = v.data AND fpr.codigo_cliente = v.codigo_cliente AND fpr.codigo_vendedor = v.codigo_vendedor AND fpr.numped = v.numero_pedido AND v.motivo IS NULL LEFT JOIN dim_vendedores dv ON dv.codigo_vendedor = v.codigo_vendedor LEFT JOIN distancia_cliente dist ON dist.data_atendimento = v.data AND dist.codigo_vendedor = v.codigo_vendedor AND dist.codigo_cliente = v.codigo_cliente AND dist.numero_pedido = v.numero_pedido AND dist.codigo_justificativa= v.codigo_justificativa ), /* ===================== [E2] Planejado que não virou visita (ANTI-JOIN) ===================== */ planejado_base AS ( SELECT dv.codigo_filial, fpv.sequencia AS sequencia_planejada, 0 AS sequencia_realizada, '00:00:00' AS inicio, '00:00:00' AS fim, '00:00:00' AS atend, '00:00:00' AS percurso, 0 AS numped, 0 AS numpederp, fpv.data AS data, fpv.codigo_cliente, dc.razaosocial AS nome_cliente, '0' AS latitude, '0' AS longitude, CAST(fpv.id_rota AS varchar) AS id_rota, fpv.codigo_vendedor, 0 AS motivo_id, '' AS motivo, 0.0 AS pedido, 0.0 AS atendido, 0.0 AS bonificacao, '' AS observacao, CASE WHEN fpv.id_rota IS NULL OR fpv.id_rota = 0 THEN 'N' ELSE 'S' END AS agendado, '' AS pdv FROM fpv_cut fpv LEFT JOIN dim_cliente dc ON dc.codigo_cliente = fpv.codigo_cliente LEFT JOIN dim_vendedores dv ON dv.codigo_vendedor = fpv.codigo_vendedor ), exec_keys AS ( SELECT DISTINCT data, codigo_vendedor, codigo_cliente, id_rota FROM fvr_cut ), bloco_planejado_nao_exec AS ( SELECT pb.* FROM planejado_base pb LEFT JOIN exec_keys k ON k.data = pb.data AND k.codigo_vendedor= pb.codigo_vendedor AND k.codigo_cliente = pb.codigo_cliente AND CAST(k.id_rota AS varchar) = pb.id_rota WHERE k.data IS NULL ) /* ===================== [F] Resultado ===================== */ SELECT * FROM bloco_visitas UNION ALL SELECT * FROM bloco_planejado_nao_exec ORDER BY codigo_vendedor, data, sequencia_realizada; |
Painel de auditória - Pedidos, Justificativa de não venda e Venda avulsa
Classificar todas as visitas realizadas (pedidos ou justificativas) em três categorias: 'PEDIDO', 'JUSTIFICATIVANAOVENDA' ou 'VISITA AVULSA'. Utilizando apenas a fato_visitas_realizadas.
WITH ResultadosUnificados AS ( SELECT v.data, v.hora, v.codigo_cliente, v.codigo_vendedor,
-- Classifica o 'tipo_vinculo' com base na regra de negócio: CASE -- REGRA 1: Se o 'id_rota' é '0', significa que o cliente NÃO estava na agenda do vendedor. Portanto, é uma 'VISITA AVULSA'. WHEN v.id_rota = '0' THEN 'VISITA AVULSA'
-- REGRA 2: Se o 'id_rota' NÃO é '0' (estava na agenda) E tem um número de pedido, é um 'PEDIDO'. WHEN v.numero_pedido IS NOT NULL THEN 'PEDIDO' -- REGRA 3: Se o 'id_rota' NÃO é '0' (estava na agenda) E tem um motivo (de não venda), é uma 'JUSTIFICATIVANAOVENDA'. WHEN v.motivo IS NOT NULL THEN 'JUSTIFICATIVANAOVENDA'
-- Se não se encaixa em nada acima (ex: estava na agenda, mas não tem pedido nem motivo), trata como 'VISITA AVULSA'. ELSE 'VISITA AVULSA' END AS tipo_vinculo,
v.observacao, v.numero_pedido, v.motivo, v.codigo_justificativa FROM -- Usamos a tabela 'fato_visitas_realizadas' como base. fato_visitas_realizadas AS v ) -- Consulta final: Seleciona todos os dados da tabela SELECT ru.data, ru.hora, ru.codigo_cliente, ru.codigo_vendedor, ru.tipo_vinculo, ru.observacao, ru.numero_pedido, ru.motivo, ru.codigo_justificativa FROM ResultadosUnificados AS ru |
|---|
Painel de auditória - Pedidos, Justificativa de não venda e Venda avulsa utilizando FATO_EVENTOS
Classificar todas as visitas realizadas (pedidos ou justificativas) em três categorias: 'PEDIDO', 'JUSTIFICATIVANAOVENDA' ou 'VISITA AVULSA'. Utilizando fato_visitas_realizadas e fato_eventos.
WITH VisitasComEventoBruto AS (
-- Bloco 1: PEDIDOS (v.numero_pedido IS NOT NULL) Une a visita (v) com o evento bruto (e) que gerou o pedido SELECT v.data, v.hora, v.codigo_cliente, v.codigo_vendedor, v.id_rota, v.numero_pedido, v.motivo, v.codigo_justificativa, v.observacao, e.tipo_evento AS evento_bruto_encontrado -- Coluna de auditoria FROM fato_visitas_realizadas AS v LEFT JOIN fato_eventos AS e -- Condições do JOIN para PEDIDO: ON v.numero_pedido = e.numero_pedido_rca -- Chave principal do pedido AND e.tipo_evento = 'PEDIDO' -- Garante que é o evento de Pedido AND v.data = CAST(e.data_hora_evento_tz AS DATE) -- Otimização do join AND v.codigo_vendedor = e.codigo_vendedor -- Otimização do join WHERE v.numero_pedido IS NOT NULL -- Filtra apenas Pedidos da fato_visitas_realizadas
UNION ALL
-- Bloco 2: JUSTIFICATIVAS (v.numero_pedido IS NULL AND v.motivo IS NOT NULL) Une a visita (v) com o evento bruto (e) que gerou a justificativa SELECT v.data, v.hora, v.codigo_cliente, v.codigo_vendedor, v.id_rota, v.numero_pedido, v.motivo, v.codigo_justificativa, v.observacao, e.tipo_evento AS evento_bruto_encontrado -- Coluna de auditoria FROM fato_visitas_realizadas AS v LEFT JOIN fato_eventos AS e -- Condições do JOIN para JUSTIFICATIVA: ON v.codigo_justificativa = e.justificativa_nao_venda_codigovinculacao -- Chave da justificativa AND e.tipo_evento = 'JUSTIFICATIVANAOVENDA' -- Garante que é o evento de Justificativa AND v.data = CAST(e.data_hora_evento_tz AS DATE) AND v.codigo_vendedor = e.codigo_vendedor WHERE v.numero_pedido IS NULL AND v.motivo IS NOT NULL -- Filtra apenas Justificativas ), -- PASSO 2: Aplicar a classificação final (mesma lógica da consulta simples) ResultadosUnificados AS ( SELECT v.data, v.hora, v.codigo_cliente, v.codigo_vendedor,
-- Classificação IDÊNTICA à consulta simples (baseada apenas em 'v') CASE -- REGRA 1: Se o 'id_rota' é '0', é 'VISITA AVULSA'. WHEN v.id_rota = '0' THEN 'VISITA AVULSA'
-- REGRA 2: Se estava na agenda E tem pedido, é 'PEDIDO'. WHEN v.numero_pedido IS NOT NULL THEN 'PEDIDO' -- REGRA 3: Se estava na agenda E tem motivo, é 'JUSTIFICATIVANAOVENDA'. WHEN v.motivo IS NOT NULL THEN 'JUSTIFICATIVANAOVENDA'
ELSE 'VISITA AVULSA' END AS tipo_vinculo,
v.observacao, v.numero_pedido, v.motivo, v.codigo_justificativa, v.evento_bruto_encontrado -- Campo extra para auditoria FROM VisitasComEventoBruto AS v ) SELECT * FROM VisitasComEventoBruto; |
|---|
Notas de versão
Data | Versão anterior | Versão atual | Alteração | Motivo |
13/11/2025 | -- | 1.0 | Criação do dicionário com a inclusão dos SQLs: · Visitas X Atendimentos · Agendamentos e visitas · Indicadores de agendamentos · Painel de auditoria - visitas | Melhoria MAXINDV-698 |
14/11/2025 | 1.0 | 1.1 | Adição de exemplos SQL para eventos · Evento Pedido, Justificativa não Venda e Venda Avulsa o Realizado exemplo apenas fato_visitas_realizadas o Realizado exemplo com fato_eventos e fato_visitas_realizadas | Melhoria MAXINDV-625 |
Artigo revisado por Thiago Oliveira
- No labels

