This commit is contained in:
+19
-15
@@ -1058,11 +1058,11 @@ where 1 = 0`,
|
||||
return {
|
||||
sql: /*sql*/`
|
||||
WITH Parametros_Base AS (
|
||||
SELECT
|
||||
TO_DATE(${args.data_venda}, 'YYYY-MM-DD') AS dt_ref,
|
||||
${args.codigo_categoria_pai} AS id_nodo_pai,
|
||||
${args.cod_empresa} AS cod_empresa
|
||||
FROM DUAL
|
||||
SELECT
|
||||
TO_DATE(${args.data_venda}, 'YYYY-MM-DD') AS dt_ref,
|
||||
${args.codigo_categoria_pai} AS id_nodo_pai,
|
||||
${args.cod_empresa} AS cod_empresa
|
||||
FROM DUAL
|
||||
),
|
||||
Parametros AS (
|
||||
SELECT
|
||||
@@ -1074,7 +1074,7 @@ where 1 = 0`,
|
||||
ADD_MONTHS(dt_ref, -12) AS dt_fim_ano_ant,
|
||||
id_nodo_pai,
|
||||
cod_empresa
|
||||
FROM Parametros_Base
|
||||
FROM Parametros_Base
|
||||
),
|
||||
filhos AS (
|
||||
SELECT
|
||||
@@ -1103,14 +1103,18 @@ where 1 = 0`,
|
||||
),
|
||||
Agrupado AS (
|
||||
SELECT
|
||||
v.id_nodo,
|
||||
MAX(v.codigo) AS codigo,
|
||||
MAX(v.nome) AS nome,
|
||||
MAX(v.tipo_nodo) AS tipo_nodo,
|
||||
MAX(v.nivel) AS nivel,
|
||||
MAX(v.cod_empresa) AS cod_empresa,
|
||||
MAX(v.ordem_exibicao) AS ordem_exibicao,
|
||||
GROUPING(v.id_nodo) AS is_total,
|
||||
-- Quando NÃO tem filtro de empresa: agrupa por CODIGO (consolida várias empresas)
|
||||
-- Quando TEM filtro de empresa: agrupa por ID_NODO (cada empresa separada)
|
||||
v.codigo AS codigo,
|
||||
MAX(v.nome) AS nome,
|
||||
MAX(v.tipo_nodo) AS tipo_nodo,
|
||||
MAX(v.nivel) AS nivel,
|
||||
CASE WHEN p.cod_empresa IS NULL
|
||||
THEN NULL
|
||||
ELSE MAX(v.cod_empresa)
|
||||
END AS cod_empresa,
|
||||
MAX(v.ordem_exibicao) AS ordem_exibicao,
|
||||
GROUPING(v.codigo) AS is_total,
|
||||
|
||||
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes AND p.dt_ref THEN v.venda ELSE 0 END) AS v_mes,
|
||||
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant THEN v.venda ELSE 0 END) AS v_mes_ant,
|
||||
@@ -1121,7 +1125,7 @@ where 1 = 0`,
|
||||
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant THEN v.meta ELSE 0 END) AS m_ano_ant
|
||||
FROM Vendas_Metas v
|
||||
CROSS JOIN Parametros p
|
||||
GROUP BY GROUPING SETS ((v.id_nodo), ())
|
||||
GROUP BY GROUPING SETS ((v.codigo, p.cod_empresa), ())
|
||||
)
|
||||
SELECT
|
||||
nome AS nomeempresaapp,
|
||||
|
||||
Reference in New Issue
Block a user