Esta seção é para quem deseja conhecer as ferramentas e os SQLs. Você pode usar a integração apenas fazendo perguntas em português.
39 exemplos SQL adaptáveis
Datas, nomes de filiais e códigos são exemplos. Substitua-os pelos filtros da sua consulta e confira os campos da base. Não é preciso reproduzir um SQL exato do catálogo.
Use colunas explícitas e aliases únicos. Para listas completas, prefira a paginação da ferramenta; LIMIT dentro do SQL restringe o conjunto original. CTEs, JOINs, subconsultas, agrupamentos e janelas de leitura são verificados pelo MCP.
G01 — Clientes por UF e status
analises-01 · analises.md
SELECT c.uf, c.status, COUNT(*) AS cadastros
FROM cag_cli c
GROUP BY c.uf, c.status
ORDER BY c.uf, c.status
G02 — Fornecedores por cidade/UF
analises-02 · analises.md
SELECT f.uf, f.cidade, COUNT(*) AS fornecedores
FROM cag_for f
WHERE f.fornecedor ILIKE '%RECICLAGEM%'
GROUP BY f.uf, f.cidade
ORDER BY fornecedores DESC, f.uf, f.cidade
G03 — Produtos por unidade e status
analises-03 · analises.md
SELECT p.un AS unidade, p.status, COUNT(*) AS produtos
FROM cag_pro p
GROUP BY p.un, p.status
ORDER BY p.un, p.status
G04 — Códigos/subcódigos repetidos no cadastro
analises-04 · analises.md
SELECT p.codpro, p.subcod, COUNT(*) AS registros
FROM cag_pro p
GROUP BY p.codpro, p.subcod
HAVING COUNT(*) > 1
ORDER BY registros DESC, p.codpro, p.subcod
G05 — Saldo de listagem por mês de vencimento, filial e moeda
analises-05 · analises.md
SELECT DATE_TRUNC('month', a.ite_pagrec_vencimento)::date AS mes,
b.cab_pagrec_filial AS filial_id, b.cab_pagrec_pr AS tipo,
b.moe_codigo AS moeda_codigo, COUNT(*) AS parcelas,
SUM(COALESCE(a.ite_pagrec_valparcela, 0)
+ COALESCE(a.ite_pagrec_valjuros, 0)
- COALESCE(a.ite_pagrec_valdesc, 0)
- COALESCE(a.ite_pagrec_valpago, 0)) AS saldo_listagem
FROM fin_ite_pagrec a
JOIN fin_cab_pagrec b ON b.cab_pagrec_id = a.cab_pagrec_id
WHERE a.ite_pagrec_vencimento >= DATE '2026-01-01'
AND a.ite_pagrec_vencimento < DATE '2027-01-01'
GROUP BY DATE_TRUNC('month', a.ite_pagrec_vencimento)::date,
b.cab_pagrec_filial, b.cab_pagrec_pr, b.moe_codigo
ORDER BY mes, filial_id, tipo, moeda_codigo
G06 — Parcelas por pessoa, sem JOIN que multiplique valores
analises-06 · analises.md
SELECT b.cab_pagrec_tabori AS tabela_pessoa,
b.orides_codigo, b.cab_pagrec_pr AS tipo,
b.moe_codigo AS moeda_codigo, COUNT(*) AS parcelas
FROM fin_cab_pagrec b
JOIN fin_ite_pagrec a ON a.cab_pagrec_id = b.cab_pagrec_id
WHERE a.ite_pagrec_vencimento >= DATE '2026-01-01'
AND a.ite_pagrec_vencimento < DATE '2027-01-01'
GROUP BY b.cab_pagrec_tabori, b.orides_codigo,
b.cab_pagrec_pr, b.moe_codigo
ORDER BY parcelas DESC, tabela_pessoa, b.orides_codigo, tipo, moeda_codigo
G07 — Títulos com parcelas no período usando EXISTS
analises-07 · analises.md
SELECT b.cab_pagrec_id AS titulo_id, b.cab_pagrec_numtit AS titulo,
b.cab_pagrec_pr AS tipo, b.cab_pagrec_filial AS filial_id
FROM fin_cab_pagrec b
WHERE EXISTS (SELECT 1 FROM fin_ite_pagrec a
WHERE a.cab_pagrec_id = b.cab_pagrec_id
AND a.ite_pagrec_vencimento >= DATE '2026-01-01'
AND a.ite_pagrec_vencimento < DATE '2027-01-01')
ORDER BY b.cab_pagrec_id
G08 — CTE e ranking de cadastros por UF
analises-08 · analises.md
WITH totais AS (
SELECT c.uf, COUNT(*) AS clientes
FROM cag_cli c
GROUP BY c.uf
)
SELECT t.uf, t.clientes,
DENSE_RANK() OVER (ORDER BY t.clientes DESC) AS posicao
FROM totais t
ORDER BY t.clientes DESC, t.uf
G09 — Serviço 3.0 por mês de emissão e cliente
analises-09 · analises.md
SELECT DATE_TRUNC('month', m.medicao_data)::date AS mes,
m.medicao_codcli AS cliente_codigo, m.medicao_status AS status,
COUNT(*) AS medicoes
FROM sagi_medicao_serv3 m
WHERE m.medicao_data >= DATE '2026-01-01'
AND m.medicao_data < DATE '2027-01-01'
GROUP BY DATE_TRUNC('month', m.medicao_data)::date,
m.medicao_codcli, m.medicao_status
ORDER BY mes, cliente_codigo, status
G10 — Medições por aprovação e filial
analises-10 · analises.md
SELECT m.medicao_filial AS filial, m.medicao_aprovada AS aprovada,
COUNT(*) AS medicoes
FROM sagi_medicao_serv3 m
WHERE m.medicao_data >= DATE '2026-01-01'
AND m.medicao_data < DATE '2027-01-01'
GROUP BY m.medicao_filial, m.medicao_aprovada
ORDER BY filial, aprovada
G11 — Nota fiscal diretamente pelo cabeçalho
analises-11 · analises.md
SELECT n.nf_id, n.nf_numero, n.nf_serie, n.nf_modelo,
n.nf_data_emi AS emissao, n.nf_filial AS filial, n.nf_nome_dest,
n.nf_vnf AS valor_nota
FROM sagi_nf n
WHERE n.nf_data_emi >= DATE '2026-01-01'
AND n.nf_data_emi < DATE '2027-01-01'
AND TRIM(n.nf_filial) = 'FILIAL2'
ORDER BY n.nf_data_emi, n.nf_id
G12 — Vendas de várias filiais por produto/unidade
analises-12 · analises.md
SELECT a.filial, a.codpro, a.subcod, a.produto, a.unidade,
SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos
FROM syg_movimento_pesos('SAIDA', DATE '2026-01-01',
CURRENT_DATE, 'IN(''MATRIZ'',''FILIAL2'')',
NULL, NULL, NULL, FALSE, FALSE, NULL, NULL, FALSE) a
GROUP BY a.filial, a.codpro, a.subcod, a.produto, a.unidade
ORDER BY a.filial, a.codpro, a.subcod, a.produto, a.unidade
G13 — Devoluções de entrada por mês/produto
analises-13 · analises.md
SELECT DATE_TRUNC('month', a.data)::date AS mes,
a.codpro, a.subcod, a.produto, a.unidade,
COUNT(*) AS itens_devolucao, SUM(a.peso_liquido) AS peso_devolucao
FROM syg_movimento_pesos('ENTRADA', DATE '2026-01-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL,
FALSE, FALSE, NULL, NULL, FALSE) a
WHERE a.origem = 'DEV-ENTRADA'
GROUP BY DATE_TRUNC('month', a.data)::date,
a.codpro, a.subcod, a.produto, a.unidade
ORDER BY mes, a.codpro, a.subcod, a.produto, a.unidade
G14 — Peso mensal e diferença em relação ao mês anterior com dados
analises-14 · analises.md
WITH mensal AS (
SELECT DATE_TRUNC('month', a.data)::date AS mes,
a.codpro, a.subcod, a.unidade, SUM(a.peso_liquido) AS peso
FROM syg_movimento_pesos('ENTRADA', DATE '2026-01-01',
CURRENT_DATE, 'FILIAL2', NULL, NULL, NULL,
FALSE, FALSE, NULL, NULL, FALSE) a
GROUP BY DATE_TRUNC('month', a.data)::date,
a.codpro, a.subcod, a.unidade
)
SELECT m.mes, m.codpro, m.subcod, m.unidade, m.peso,
LAG(m.peso) OVER (PARTITION BY m.codpro, m.subcod, m.unidade ORDER BY m.mes) AS peso_grupo_anterior
FROM mensal m
ORDER BY m.codpro, m.subcod, m.unidade, m.mes
C01 — Encontrar fornecedor por parte do nome
cadastros-01 · cadastros.md
SELECT f.codfor AS fornecedor_codigo,
f.fornecedor AS nome, f.cidade, f.uf, f.status
FROM cag_for f
WHERE f.fornecedor ILIKE '%RECICLAGEM%'
ORDER BY f.fornecedor, f.codfor, f.sr_recno
LIMIT 100
C02 — Encontrar cliente por parte do nome
cadastros-02 · cadastros.md
SELECT c.codcli AS cliente_codigo,
c.cliente AS nome, c.cidade, c.uf, c.status
FROM cag_cli c
WHERE c.cliente ILIKE '%RECICLAGEM%'
ORDER BY c.cliente, c.codcli, c.sr_recno
LIMIT 100
C03 — Localizar código e subcódigo de produto
cadastros-03 · cadastros.md
SELECT p.codpro, p.subcod, p.produto,
p.un AS unidade, p.status
FROM cag_pro p
WHERE p.produto ILIKE '%SUCATA%'
ORDER BY p.produto, p.codpro, p.subcod, p.sr_recno
LIMIT 100
Exemplo reduzido de listagem
financeiro30-01 · financeiro30.md
SELECT a.ite_pagrec_id AS parcela_id,
b.cab_pagrec_id AS titulo_id,
b.cab_pagrec_pr AS tipo,
b.cab_pagrec_numtit AS titulo,
a.ite_pagrec_parcela AS parcela,
b.cab_pagrec_data AS lancamento,
a.ite_pagrec_vencimento AS vencimento,
a.ite_pagrec_pagamento AS pagamento,
b.cab_pagrec_filial AS filial_id,
b.moe_codigo AS moeda_codigo,
COALESCE(a.ite_pagrec_valparcela, 0) AS valor_parcela,
COALESCE(a.ite_pagrec_valjuros, 0) AS juros,
COALESCE(a.ite_pagrec_valdesc, 0) AS descontos,
COALESCE(a.ite_pagrec_valpago, 0) AS valor_pago,
(COALESCE(a.ite_pagrec_valparcela, 0)
+ COALESCE(a.ite_pagrec_valjuros, 0)
- COALESCE(a.ite_pagrec_valdesc, 0))
- COALESCE(a.ite_pagrec_valpago, 0) AS saldo_listagem
FROM fin_ite_pagrec a
INNER JOIN fin_cab_pagrec b ON b.cab_pagrec_id = a.cab_pagrec_id
WHERE b.cab_pagrec_data >= DATE '2025-01-01'
ORDER BY a.ite_pagrec_vencimento, a.ite_pagrec_id
LIMIT 100
Totais do mesmo recorte do exemplo
financeiro30-02 · financeiro30.md
SELECT b.cab_pagrec_pr AS tipo,
b.moe_codigo AS moeda_codigo,
COUNT(*) AS quantidade_parcelas,
SUM((COALESCE(a.ite_pagrec_valparcela, 0)
+ COALESCE(a.ite_pagrec_valjuros, 0)
- COALESCE(a.ite_pagrec_valdesc, 0))
- COALESCE(a.ite_pagrec_valpago, 0)) AS saldo_listagem
FROM fin_ite_pagrec a
INNER JOIN fin_cab_pagrec b ON b.cab_pagrec_id = a.cab_pagrec_id
WHERE b.cab_pagrec_data >= DATE '2025-01-01'
GROUP BY b.cab_pagrec_pr, b.moe_codigo
ORDER BY b.cab_pagrec_pr, b.moe_codigo
F03 — Títulos com vencimento de hoje até daqui a 30 dias
financeiro30-03 · financeiro30.md
SELECT a.ite_pagrec_id AS parcela_id,
b.cab_pagrec_id AS titulo_id,
b.cab_pagrec_pr AS tipo, b.cab_pagrec_numtit AS titulo,
a.ite_pagrec_parcela AS parcela,
a.ite_pagrec_vencimento AS vencimento,
b.cab_pagrec_filial AS filial_id,
b.moe_codigo AS moeda_codigo,
a.ite_pagrec_valparcela AS valor_parcela,
a.ite_pagrec_valjuros AS juros,
a.ite_pagrec_valdesc AS descontos,
a.ite_pagrec_valpago AS valor_pago
FROM fin_ite_pagrec a
INNER JOIN fin_cab_pagrec b ON b.cab_pagrec_id = a.cab_pagrec_id
WHERE a.ite_pagrec_vencimento >= CURRENT_DATE
AND a.ite_pagrec_vencimento <= CURRENT_DATE + 30
ORDER BY a.ite_pagrec_vencimento, a.ite_pagrec_id
LIMIT 100
F04 — Saldo em aberto no critério do dashboard do portal
financeiro30-04 · financeiro30.md
SELECT t.tipo, t.moeda_codigo,
COUNT(*) AS parcelas_em_aberto,
SUM(t.saldo) AS saldo_dashboard
FROM (
SELECT a.ite_pagrec_id, b.cab_pagrec_pr AS tipo,
b.moe_codigo AS moeda_codigo,
(COALESCE(a.ite_pagrec_valparcela, 0)
+ COALESCE(a.ite_pagrec_valjuros, 0)
- COALESCE(a.ite_pagrec_valdesc, 0))
- COALESCE(a.ite_pagrec_valpago, 0)
+ COALESCE(a.ite_var_cambial, 0) AS saldo
FROM fin_ite_pagrec a
INNER JOIN fin_cab_pagrec b ON b.cab_pagrec_id = a.cab_pagrec_id
WHERE a.ite_pagrec_vencimento BETWEEN DATE '2026-06-01'
AND CURRENT_DATE
AND b.cab_pagrec_numtit NOT LIKE 'ASADT%'
AND NOT EXISTS (
SELECT 1 FROM fin_estorno e
WHERE e.estorno_ite_pagrec_id = a.ite_pagrec_id
)
) t
WHERE t.saldo <> 0
GROUP BY t.tipo, t.moeda_codigo
ORDER BY t.tipo, t.moeda_codigo
N01 — Notas emitidas desde janeiro de 2026
fiscal-01 · fiscal.md
SELECT n.nf_id, n.emissao, n.entsai, n.numero,
n.serie, n.modelo, n.operacao, n.origem,
n.status, n.tipo_destina, n.cod_destina,
n.nome_destina, n.cfop, n.valornf, n.finalidade
FROM syg_lista_nf('TODAS', 1, DATE '2026-01-01',
CURRENT_DATE, 'TODAS', 'TODAS',
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
ORDER BY n.emissao DESC, n.nf_id DESC
LIMIT 100
N02 — Notas de entrada pela data de entrada/saída
fiscal-02 · fiscal.md
SELECT n.nf_id, n.emissao, n.entsai, n.numero,
n.serie, n.modelo, n.origem, n.status,
n.nome_destina, n.cfop, n.valornf
FROM syg_lista_nf('TODAS', 2, DATE '2026-01-01',
CURRENT_DATE, 'ENTRADA', 'TODAS',
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
ORDER BY n.entsai DESC, n.nf_id DESC
LIMIT 100
N03 — Notas de saída por mês de emissão e status
fiscal-03 · fiscal.md
SELECT TO_CHAR(n.emissao, 'YYYY-MM') AS mes,
n.status, COUNT(DISTINCT n.nf_id) AS notas,
SUM(n.valornf) AS valor_notas
FROM syg_lista_nf('TODAS', 1, DATE '2026-01-01',
CURRENT_DATE, 'SAIDA', 'TODAS',
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
GROUP BY TO_CHAR(n.emissao, 'YYYY-MM'), n.status
ORDER BY mes, n.status
N04 — Quantidade e valor por operação e status
fiscal-04 · fiscal.md
SELECT n.operacao, n.status,
COUNT(DISTINCT n.nf_id) AS notas,
SUM(n.valornf) AS valor_notas
FROM syg_lista_nf('TODAS', 1, DATE '2026-01-01',
CURRENT_DATE, 'TODAS', 'TODAS',
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
GROUP BY n.operacao, n.status
ORDER BY n.operacao, n.status
N05 — Valores de tributos destacados por CFOP e status
fiscal-05 · fiscal.md
SELECT n.operacao, n.cfop, n.status,
COUNT(DISTINCT n.nf_id) AS notas,
SUM(n.valornf) AS valor_notas,
SUM(n.vlr_icms) AS icms_destacado,
SUM(n.vlr_ipi) AS ipi_destacado,
SUM(n.vlr_pis) AS pis_destacado,
SUM(n.vlr_cofins) AS cofins_destacado
FROM syg_lista_nf('TODAS', 1, DATE '2026-01-01',
CURRENT_DATE, 'TODAS', 'TODAS',
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
GROUP BY n.operacao, n.cfop, n.status
ORDER BY n.operacao, n.cfop, n.status
N06 — Localizar uma nota por número, série e modelo
fiscal-06 · fiscal.md
SELECT n.nf_id, n.emissao, n.numero, n.serie,
n.modelo, n.operacao, n.origem, n.status,
n.tipo_destina, n.cod_destina, n.nome_destina,
n.valornf, n.documentos
FROM syg_lista_nf('TODAS', 1, DATE '2026-01-01',
CURRENT_DATE, 'TODAS', 'TODAS',
'1', '55', NULL, 12345, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL) n
ORDER BY n.emissao DESC, n.nf_id DESC
LIMIT 100
P01 — Listar entradas desde 1º de junho de 2026
pesagens-01 · pesagens.md
SELECT a.data, a.boleto, a.codigo AS fornecedor_codigo,
a.nome AS fornecedor, a.placa, a.codpro, a.subcod,
a.produto, a.unidade, a.peso_bruto, a.peso_tara,
a.peso_liquido, a.valor_total, a.filial, a.origem,
a.id_recnobol
FROM syg_movimento_pesos('ENTRADA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
ORDER BY a.data DESC, a.filial, a.boleto DESC,
a.origem, a.id_recnobol
LIMIT 100
P02 — Listar saídas desde 1º de junho de 2026
pesagens-02 · pesagens.md
SELECT a.data, a.boleto, a.codigo AS cliente_codigo,
a.nome AS cliente, a.placa, a.codpro, a.subcod,
a.produto, a.unidade, a.peso_liquido, a.valor_total,
a.filial, a.origem, a.id_recnobol
FROM syg_movimento_pesos('SAIDA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
ORDER BY a.data DESC, a.filial, a.boleto DESC,
a.origem, a.id_recnobol
LIMIT 100
P03 — Total de entradas por filial e unidade de medida
pesagens-03 · pesagens.md
SELECT a.filial, a.unidade,
COUNT(*) AS itens_relatorio,
SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos
FROM syg_movimento_pesos('ENTRADA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
GROUP BY a.filial, a.unidade
ORDER BY a.filial, a.unidade
P04 — Evolução diária de saídas
pesagens-04 · pesagens.md
SELECT a.data, a.unidade,
SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos,
COUNT(*) AS itens_relatorio
FROM syg_movimento_pesos('SAIDA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
GROUP BY a.data, a.unidade
ORDER BY a.data, a.unidade
P05 — Entradas por produto e subproduto
pesagens-05 · pesagens.md
SELECT a.codpro, a.subcod, a.produto, a.unidade,
SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos,
COUNT(*) AS itens_relatorio
FROM syg_movimento_pesos('ENTRADA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
GROUP BY a.codpro, a.subcod, a.produto, a.unidade
ORDER BY a.unidade, peso_liquido DESC, a.codpro, a.subcod,
a.produto
P06 — Fornecedores com maior volume em uma unidade
pesagens-06 · pesagens.md
SELECT a.codigo AS fornecedor_codigo, a.nome AS fornecedor,
a.unidade, SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos
FROM syg_movimento_pesos('ENTRADA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
WHERE TRIM(a.unidade) = 'KG'
GROUP BY a.codigo, a.nome, a.unidade
ORDER BY peso_liquido DESC, a.codigo, a.nome, a.unidade
LIMIT 10
P07 — Pesagens de um fornecedor
pesagens-07 · pesagens.md
SELECT a.data, a.boleto, a.codigo, a.nome,
a.codpro, a.subcod, a.produto, a.unidade,
a.peso_liquido, a.valor_total, a.filial, a.origem,
a.id_recnobol
FROM syg_movimento_pesos('ENTRADA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', 123, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
ORDER BY a.data DESC, a.filial, a.boleto DESC,
a.origem, a.id_recnobol
LIMIT 100
P08 — Detalhar um boleto de venda
pesagens-08 · pesagens.md
SELECT a.data, a.boleto, a.codigo, a.nome,
a.codpro, a.subcod, a.produto, a.unidade,
a.peso_liquido, a.preco, a.valor_total,
a.filial, a.origem, a.id_recnobol
FROM syg_movimento_pesos('SAIDA', DATE '2026-06-01',
CURRENT_DATE, 'TODAS', NULL, NULL, NULL, NULL,
NULL, 456, NULL, NULL) a
ORDER BY a.data, a.filial, a.origem, a.id_recnobol
LIMIT 100
Compras mensais por produto e unidade
pesagens-09 · pesagens.md
SELECT DATE_TRUNC('month', a.data)::date AS mes,
a.filial, a.codpro, a.subcod, a.produto, a.unidade,
COUNT(*) AS itens_relatorio,
COUNT(DISTINCT a.boleto) FILTER (WHERE a.boleto > 0) AS boletos_com_movimento,
COUNT(*) FILTER (WHERE a.origem = 'DEV-ENTRADA') AS itens_devolucao,
SUM(a.peso_liquido) AS peso_liquido,
SUM(a.valor_total) AS valor_movimentos
FROM syg_movimento_pesos('ENTRADA', DATE '2026-01-01',
DATE '2026-12-31', 'FILIAL2', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL) a
WHERE TRIM(a.filial) = 'FILIAL2'
AND a.data >= DATE '2026-01-01' AND a.data < DATE '2027-01-01'
GROUP BY DATE_TRUNC('month', a.data)::date,
a.filial, a.codpro, a.subcod, a.produto, a.unidade
ORDER BY mes, a.codpro, a.subcod, a.produto, a.unidade
Exemplo: medições emitidas em um período
servico30-01 · servico30.md
SELECT sms.medicao_id AS numero,
sms.medicao_data AS data_emissao,
sms.medicao_codcli AS cliente_codigo,
sms.medicao_status AS status,
sms.medicao_filial AS filial,
sms.medicao_aprovada AS aprovada
FROM sagi_medicao_serv3 sms
WHERE sms.medicao_data >= DATE '2025-01-01'
AND sms.medicao_data < DATE '2025-02-01'
ORDER BY sms.medicao_data DESC, sms.medicao_id DESC
LIMIT 100
S02 — Medições por filial e status
servico30-02 · servico30.md
SELECT sms.medicao_filial AS filial,
sms.medicao_status AS status,
COUNT(*) AS quantidade_medicoes
FROM sagi_medicao_serv3 sms
WHERE sms.medicao_data >= DATE '2026-06-01'
AND sms.medicao_data <= CURRENT_DATE
GROUP BY sms.medicao_filial, sms.medicao_status
ORDER BY sms.medicao_filial, sms.medicao_status
S03 — Itens e contrato de uma medição
servico30-03 · servico30.md
SELECT smis.medicao_item_id AS item_id,
smis.medicao_id AS medicao_id,
sms.medicao_filial AS filial,
smis.medicao_contrato_id AS contrato_id,
scs.contrato_descricao,
smis.medicao_prestacao_id AS prestacao_id,
sps.prestacao_data AS data_prestacao,
sps.prestacao_ordem AS coleta,
smis.medicao_tipo_servico AS tipo_servico,
smis.medicao_qtd_prestada AS quantidade_prestada,
smis.medicao_qtd_cobrada AS quantidade_cobrada,
smis.medicao_valor_unit AS valor_unitario
FROM sagi_medicao_item_serv3 smis
INNER JOIN sagi_medicao_serv3 sms ON sms.medicao_id = smis.medicao_id
INNER JOIN sagi_contrato_serv3 scs ON scs.contrato_id = smis.medicao_contrato_id
LEFT JOIN sagi_prestacao_serv3 sps ON sps.prestacao_id = smis.medicao_prestacao_id
WHERE smis.medicao_id = 123
ORDER BY smis.medicao_contrato_id, sps.prestacao_data,
smis.medicao_item_id
LIMIT 100