This commit is contained in:
+37
-24
@@ -1087,12 +1087,13 @@ where 1 = 0`,
|
|||||||
OR (p.id_nodo_pai IS NOT NULL AND n.id_nodo_pai = p.id_nodo_pai) )
|
OR (p.id_nodo_pai IS NOT NULL AND n.id_nodo_pai = p.id_nodo_pai) )
|
||||||
AND (p.cod_empresa IS NULL OR n.cod_empresa = p.cod_empresa)
|
AND (p.cod_empresa IS NULL OR n.cod_empresa = p.cod_empresa)
|
||||||
),
|
),
|
||||||
Vendas AS (
|
Vendas_Metas AS (
|
||||||
SELECT
|
SELECT
|
||||||
f.id_nodo, f.codigo, f.nome, f.tipo_nodo, f.nivel,
|
f.id_nodo, f.codigo, f.nome, f.tipo_nodo, f.nivel,
|
||||||
f.cod_empresa, f.ordem_exibicao,
|
f.cod_empresa, f.ordem_exibicao,
|
||||||
r.data_referencia AS data,
|
r.data_referencia AS data,
|
||||||
r.valor_venda AS venda
|
r.valor_venda AS venda,
|
||||||
|
0 AS meta
|
||||||
FROM filhos f
|
FROM filhos f
|
||||||
JOIN VERDEMAR.TB_FLASH_NODO_RESUMO_VENDA r ON r.id_nodo = f.id_nodo
|
JOIN VERDEMAR.TB_FLASH_NODO_RESUMO_VENDA r ON r.id_nodo = f.id_nodo
|
||||||
CROSS JOIN Parametros p
|
CROSS JOIN Parametros p
|
||||||
@@ -1103,43 +1104,55 @@ where 1 = 0`,
|
|||||||
Agrupado AS (
|
Agrupado AS (
|
||||||
SELECT
|
SELECT
|
||||||
v.id_nodo,
|
v.id_nodo,
|
||||||
v.codigo,
|
MAX(v.codigo) AS codigo,
|
||||||
MAX(v.nome) AS nome,
|
MAX(v.nome) AS nome,
|
||||||
MAX(v.tipo_nodo) AS tipo_nodo,
|
MAX(v.tipo_nodo) AS tipo_nodo,
|
||||||
MAX(v.nivel) AS nivel,
|
MAX(v.nivel) AS nivel,
|
||||||
MAX(v.cod_empresa) AS cod_empresa,
|
MAX(v.cod_empresa) AS cod_empresa,
|
||||||
MAX(v.ordem_exibicao) AS ordem_exibicao,
|
MAX(v.ordem_exibicao) AS ordem_exibicao,
|
||||||
GROUPING(v.id_nodo) AS is_total,
|
GROUPING(v.id_nodo) AS is_total,
|
||||||
|
|
||||||
|
-- Somat�rios de Vendas por Per�odo
|
||||||
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 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,
|
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,
|
||||||
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant THEN v.venda ELSE 0 END) AS v_ano_ant
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_ano_ant AND p.dt_fim_ano_ant THEN v.venda ELSE 0 END) AS v_ano_ant,
|
||||||
FROM Vendas v
|
|
||||||
|
-- Somat�rios de Metas por Per�odo
|
||||||
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes AND p.dt_ref THEN v.meta ELSE 0 END) AS m_mes,
|
||||||
|
SUM(CASE WHEN v.data BETWEEN p.dt_inicio_mes_ant AND p.dt_fim_mes_ant THEN v.meta ELSE 0 END) AS m_mes_ant,
|
||||||
|
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
|
CROSS JOIN Parametros p
|
||||||
GROUP BY GROUPING SETS ((v.id_nodo, v.codigo), ())
|
GROUP BY GROUPING SETS ((v.id_nodo), ())
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
nome AS categoriaapp,
|
nome AS nomeempresaapp, -- Nome do n�
|
||||||
codigo AS cod_nodo,
|
tipo_nodo AS canalapp, -- Tipo do n� (ex: CATEGORIA)
|
||||||
tipo_nodo,
|
cod_empresa AS cod_empresa, -- C�digo da empresa associada ao n�
|
||||||
nivel,
|
is_total, -- Indicador de linha totalizadora
|
||||||
cod_empresa,
|
|
||||||
is_total,
|
|
||||||
|
|
||||||
v_mes AS venda_dia,
|
-- M�s Atual e Metas Efetivas
|
||||||
v_mes AS mes_atual,
|
m_mes AS meta_mes,
|
||||||
0 AS meta_mes,
|
v_mes AS mes_atual,
|
||||||
0 AS dif_mes_atual,
|
(v_mes - m_mes) AS dif_mes_atual,
|
||||||
0 AS variacao_atual,
|
CASE
|
||||||
|
WHEN m_mes = 0 THEN 0
|
||||||
v_mes_ant AS mes_anterior,
|
ELSE ROUND(((v_mes / m_mes) * 100) - 100, 2)
|
||||||
(v_mes - v_mes_ant) AS dif_mes_anterior,
|
END AS variacao_atual,
|
||||||
|
|
||||||
|
-- M�s Anterior e Metas
|
||||||
|
m_mes_ant AS meta_mes_anterior,
|
||||||
|
v_mes_ant AS mes_anterior,
|
||||||
|
(v_mes - v_mes_ant) AS dif_mes_anterior,
|
||||||
ROUND(NVL((v_mes / NULLIF(v_mes_ant, 0)) * 100 - 100, 0), 2) AS variacao_mes_anterior,
|
ROUND(NVL((v_mes / NULLIF(v_mes_ant, 0)) * 100 - 100, 0), 2) AS variacao_mes_anterior,
|
||||||
|
|
||||||
v_ano_ant AS ano_anterior,
|
-- Ano Anterior e Metas
|
||||||
(v_mes - v_ano_ant) AS dif_ano_anterior,
|
m_ano_ant AS meta_ano_anterior,
|
||||||
|
v_ano_ant AS ano_anterior,
|
||||||
|
(v_mes - v_ano_ant) AS dif_ano_anterior,
|
||||||
ROUND(NVL((v_mes / NULLIF(v_ano_ant, 0)) * 100 - 100, 0), 2) AS variacao_ano_anterior
|
ROUND(NVL((v_mes / NULLIF(v_ano_ant, 0)) * 100 - 100, 0), 2) AS variacao_ano_anterior
|
||||||
FROM Agrupado
|
FROM Agrupado
|
||||||
ORDER BY is_total, ordem_exibicao NULLS LAST, categoriaapp
|
ORDER BY is_total, ordem_exibicao NULLS LAST, nomeempresaapp
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user