Início · SQL básico para contabilistas e auditores

SQL básico para contabilistas e auditores

Introdução ao SQL para contabilistas e auditores: SELECT, filtros, agregações e junções aplicados a razão, facturas e testes de auditoria.

SQL é a linguagem usada para consultar bases de dados. Quase todos os programas de contabilidade guardam os dados em bases deste tipo, e um auditor que sabe fazer perguntas directamente aos dados trabalha com a população completa em vez de uma amostra. Bastam cinco comandos para começar.

Infografia com os pontos principais de: SQL básico para contabilistas e auditores

Porque é útil a quem trabalha com números

O Excel tem limites de linhas e torna-se lento com ficheiros grandes. Uma base de dados aguenta milhões de movimentos e responde em segundos. Além disso, uma consulta SQL fica escrita: pode ser repetida no ano seguinte, revista por um colega e anexada ao dossiê de trabalho como evidência do procedimento.

Para estudantes, o SQL é também uma boa forma de perceber como os dados contabilísticos se organizam: tabelas de contas, de lançamentos, de terceiros, ligadas entre si por códigos.

Uma base de dados em três tabelas

Imagine um pequeno modelo com estas tabelas (nomes ilustrativos):

  • contas(codigo, nome, classe)
  • lancamentos(id, data, conta, terceiro, debito, credito, descricao)
  • terceiros(codigo, nome, nif)

Cada linha de lancamentos é um movimento. A coluna conta aponta para o código em contas; a coluna terceiro aponta para terceiros. Estas ligações chamam-se chaves.

Os cinco comandos essenciais

  1. SELECT escolhe as colunas a mostrar.
  2. FROM indica a tabela.
  3. WHERE filtra linhas segundo uma condição.
  4. GROUP BY agrupa linhas para somar, contar ou calcular médias.
  5. ORDER BY ordena o resultado.

Exemplo: listar todos os movimentos de Março, do maior para o menor valor a débito.

SELECT data, conta, debito FROM lancamentos WHERE data BETWEEN '2025-03-01' AND '2025-03-31' ORDER BY debito DESC;

Somar e contar: funções de agregação

As funções SUM, COUNT, AVG, MIN e MAX resumem muitas linhas num número. Combinadas com GROUP BY, produzem balancetes em segundos:

SELECT conta, SUM(debito) AS total_debito, SUM(credito) AS total_credito FROM lancamentos GROUP BY conta ORDER BY conta;

Se o total de débitos não for igual ao total de créditos, há um erro de integridade nos dados, e esse é um teste de auditoria básico que se faz numa linha.

Juntar tabelas: o comando JOIN

Para mostrar o nome da conta em vez do código, junta-se lancamentos a contas:

SELECT c.nome, SUM(l.debito - l.credito) AS saldo FROM lancamentos l JOIN contas c ON l.conta = c.codigo GROUP BY c.nome;

O prefixo l e c são apelidos das tabelas, que tornam a consulta mais curta. Atenção: se a ligação for mal feita, o JOIN pode duplicar linhas e inflacionar totais. Compare sempre o resultado com o balancete.

Testes de auditoria que o SQL faz bem

  • Duplicados: mesma factura, mesmo fornecedor e mesmo valor lançados duas vezes (GROUP BY com HAVING COUNT maior que 1).
  • Quebras de sequência: números de documentos em falta numa série.
  • Valores redondos ou imediatamente abaixo de um limite de aprovação, que merecem pergunta.
  • Lançamentos em dias não úteis ou fora de horas.
  • Terceiros sem NIF ou com NIF repetido.
  • Datas fora do período contabilístico.

Estes testes não provam fraude; apontam para itens a investigar. A conclusão exige sempre análise do documento de suporte e conversa com a gestão.

Exemplo resolvido: procurar pagamentos duplicados

Suponha que a tabela de pagamentos tem fornecedor, número de factura e valor. A consulta agrupa por estes três campos e mantém só os grupos com mais de uma linha. Se aparecer o fornecedor X, factura 215, valor 240 000 Kz, duas vezes, o auditor pede os extractos bancários para ver se o dinheiro saiu duas vezes ou se foi apenas um registo repetido. Valores ilustrativos.

Ler o resultado com espírito crítico

Uma consulta devolve o que lhe pediu, não o que quis dizer. Por isso, antes de tirar conclusões, faça três verificações. Primeiro, conte as linhas: o número de movimentos devolvido é o esperado? Segundo, some os valores e compare com um total conhecido, como o balancete ou o saldo do extracto. Terceiro, escolha dois ou três itens ao acaso e confirme-os no documento original.

Um erro típico é filtrar por data sem incluir o último dia do período, ou comparar datas guardadas como texto, o que dá ordenações estranhas. Outro é esquecer que um lançamento pode ter várias linhas e que, ao contar linhas, está a contar partidas e não documentos. Para contar documentos, use COUNT(DISTINCT numero_documento).

Quando o resultado for surpreendente, desconfie primeiro da consulta e só depois do cliente. Muitas "fraudes" encontradas por um auditor principiante são, na verdade, erros de junção ou de filtro.

Boas práticas e cuidados

  • Trabalhe sobre uma cópia dos dados; consultas de leitura (SELECT) não alteram nada, mas comandos como UPDATE e DELETE sim.
  • Documente cada consulta: objectivo, data, origem dos dados, resultado.
  • Confirme os totais com um relatório conhecido antes de confiar na consulta.
  • Respeite a confidencialidade e as regras de acesso à informação.
  • Comece com poucas linhas (LIMIT) para ver se a consulta faz o que pensa.

Como praticar

Pode instalar gratuitamente uma base de dados leve, como SQLite, e importar um ficheiro CSV com o razão de um exercício. Resolva cinco desafios: totais por conta, movimentos de um mês, maiores 10 lançamentos, duplicados e saldo por terceiro. Em duas semanas, com meia hora por dia, ganha fluência suficiente para pedir dados à equipa de informática com precisão e para testar a sua própria contabilidade.

Precisa de apoio de contabilidade para a sua empresa?

Se, além de estudar, tem ou vai abrir um negócio, a Contas Organizadas trata da contabilidade, da fiscalidade e da folha de salários. Fale connosco.

Perguntas frequentes

É preciso ser informático para aprender SQL?

Não. A sintaxe é próxima do inglês e os primeiros comandos aprendem-se em horas. O difícil é saber que perguntas fazer, e isso é conhecimento de contabilidade.

SQL substitui o Excel?

Não, complementam-se. O SQL extrai e agrega grandes volumes; o Excel serve para análise final, gráficos e apresentação.

Posso estragar a base de dados da empresa?

Com comandos de leitura, não. Mesmo assim, peça acesso só de leitura ou trabalhe numa cópia, e nunca execute UPDATE ou DELETE sem autorização.

Conversar