Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
dpsouza
Contributor
Contributor

AJUDA COM SET ANALYSIS

Boa noite pessoal !

Seguinte sou júnior na minha empresa e estou com dificuldade para montar um set analysis  , vou explicar com detalhes a situação .

 

Primeiro eu tenho uma expressão pronta abaixo , onde ele pega o FG_CONTAB  que é se o lançamento vai contabilizar para uma meta ou nao  que no meu caso é zero pois quero somente os rejeitados , depois tenho o motivo rejeição que é o 2 , e tudo isso calculando em cima dos agentes para mostrar os lançamentos rejeitados :  

count(distinct{1<FG_CONTAB={"0"},TP_MOTIVO_REJEICAO_DIVISAO_REJ={"2"}>} CH_AGENTE)

Até ai tudo bem , peguei a regra pois tenho dois BIs um que filtra rejeitados por essa regra e um outro BI que utiliza datas de centro de custo vinculado ao ano , ai que mora o problema pois preciso replicar uma regra onde nao tem filtro de centro de custo de um BI para outro que tem filtro de data por centro de custo .

Ai quando uso essa expressão no BI que tem o filtro automático por centro de custo ele da valores divergentes do outro BI pois um filtra pela data de atendimento e o outro filtra por data do centro de custo , abaixo o select de onde o outro bi tira as informações  : 

NoConcatenate
F_CLIENTES_REALIZA:
Load *;
select r.CH_PERIODO_REFER || '|' || r.CH_ANO_CCUSTO AS CH_PERIODO_REFER_CCUSTO,
substr(r.CH_PERIODO_REFER, 1, 6) ||
substr(r.CH_ANO_CCUSTO,instr(r.CH_ANO_CCUSTO,'|'), length(r.CH_ANO_CCUSTO)-instr(r.CH_ANO_CCUSTO,'|')+1) || '|' ||
substr(r.ch_unidade,6, length(r.ch_unidade)-5) AS CH_ANO_MES_CCUSTO_UNIDADE, -- incluído por José Luis Abelardino para carregar a chave com a I_META_FISICA_PR
substr(r.CH_ANO_CCUSTO,instr(r.CH_ANO_CCUSTO,'|'), length(r.CH_ANO_CCUSTO)-instr(r.CH_ANO_CCUSTO,'|')+1) || '|' ||
substr(r.ch_unidade,6, length(r.ch_unidade)-5) AS CH_ANO_MES_CCUSTO_UNID_CHAVE,
r.ch_atendimento,
--r.ch_atendimento as CH_ANO_REA_GPQ,
SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5) AS cd_atendimento,

SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5)||SUBSTR(CH_PF_ANO_AGENTE,6) AS CH_ATEND_CLI,

--nvl2(r.ch_disponibilizacao,r.ch_disponibilizacao,SUBSTR(r.ch_atendimento,6,LENGTH(r.ch_atendimento)-5)) as ch_disp_int,
r.ch_ano_ccusto ch_ano_ccusto_rea,
TO_NUMBER(SUBSTR (TO_CHAR (r.dt_atendimento,'YYYYMMDD'),1,6)) || '00' AS CH_PERIODO_REJ,
r.tp_motivo_rejeicao_divisao as tp_motivo_rejeicao_divisao_rej,//25/10/2021 dpsouza REQ - 40178
r.tp_solucao,
r.DS_INSTRUMENTO, //voz
r.DS_REGIONAL, //voz
r.ch_unidade,
r.ds_sgl_unidade_rea,
r.ds_unidade as ds_unidade_rea,
r.DS_ESCRITORIO as ds_escritorio_rea,
r.tp_unidade as tp_unidade_rea,
substr(r.ch_localidade,9) as cd_localidade_rea,
substr(r.ch_localidade,9) as cd_localidade_rea_chave,
r.ch_localidade as ch_localidade_rea,
r.ch_atend_part,
r.ch_agente,
SUBSTR(CH_PF_ANO_AGENTE,6) AS CH_PF_ANO_AGENTE,
r.ds_canal_atendimento,
r.DS_SITUACAO_PARTICIPANTE,
r.fg_distancia_rea,
r.DS_PROGRAMA_LOCAL_CCUSTO,
r.tp_orient_inform,
r.qt_horas,
r.ch_periodo_inicial,
SUBSTR(r.CH_PERIODO_INICIAL, 1,6) as ch_periodo_ini, //voz
r.ch_periodo_final,
r.ch_produto,
r.fg_contab,
r.ch_atualizacao,
r.dh_atualizacao,
r.fg_meta_1,
r.fg_meta_2,
r.fg_meta_3,
r.fg_meta_4,
r.fg_meta_5,
r.fg_meta_8,
r.fg_meta_9,
r.fg_presente
from bi_dw.I_CLIENTES_REALIZA r;

 

nesse outro select é de onde o BI de centro de custo pega as informações automáticas  : 

 

NoConcatenate
D_CCUSTO:
Load *;

select p.ch_periodo_ano_mes AS CH_PERIODO_ANO_MES_META_MOB,
DS_REGIONAL,
DS_ESCRITORIO,
Case
when FG_SEDE_ADM = 1 then
'UNIDADES'
else
DS_REGIONAL
end as Regional,
loc.Cd_LOCALIDADE as CD_LOCALIDADE_ORC,
NM_GESTOR_PROJETO,
DS_UNIDADE,
UDD.DS_SGL_UNIDADE_SGE as DS_UNIDADE_SGL,
case
when FG_SEDE_ADM = 1 then
UDD.DS_SGL_UNIDADE_SGE
end as DS_SGL_UNIDADE,
CH_ACAO_PROJ as cd_ccusto,
Case
when DS_ACAO is null then
Null
else
CH_ACAO_PROJ || ' - ' || DS_ACAO
end as DS_ACAO,
DS_ACAO as DS_ACAO_TEXTO,
Case
when DS_PROJETO is null then
Null
else
CH_PROJETO || ' - ' || DS_PROJETO
end as DS_PROJETO,
DS_PROJETO as DS_PROJETO_TEXTO,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA_CHAVE,
cc.nr_ano_proj || '|' || cc.cd_acao_na AS CH_ACAO_NA_REJ,
p.ch_periodo_ano_mes as ch_periodo_ano_mes,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto_os,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_os_chave,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_periodo_refer_ccusto_eem,
p.ch_periodo_ano_mes || '|' || cc.CH_ANO_CCUSTO as ch_ano_mes_ccusto_gpq,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto_voz,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.ch_ano_ccusto as ch_ano_mes_ccusto_chave,
cc.nm_coord_estadual,
cc.CD_PRATIF AS "Pratif",
substr(p.ch_periodo_ano_mes, 1, 4) || '|' || cc.CD_PRATIF AS CH_PRATIF,

substr(p.ch_periodo_ano_mes, 1, 4) || '|' || cc.CD_PRATIF AS CH_ANO_PRATIF_DETALHADO_MAPAS,

substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_ANO_MES_PRATIF,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_ANO_MES_PRATIF_CHAVE,
substr(p.ch_periodo_ano_mes, 1, 6) || '|' || cc.CD_PRATIF AS CH_PRATIF_META_MOB_REG_DIGITAL,
ccsge.ds_obj_estrat_local as ds_obj_estrat_local,
ccsge.ds_obj_estrat_local_reduzido as ds_obj_estrat_local_reduzido,
ccsge.ds_macro_processo as ds_macro_processo,
CC.DS_PROGRAMA_NA,

--NOVO CANAIS DE ATENDIMENTO

case
when CCSGE.ds_obj_estrat_local =
'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial' and --removido 20200501 a pedido da Dayse
(

(UPPER(DS_ACAO) LIKE UPPER('Escritório%') AND
substr(cc.ch_ano_ccusto, 1, 4) = 2020) or
(UPPER(DS_PROJETO) LIKE ('CANAL ESCRITÓRIO%') AND
substr(cc.ch_ano_ccusto, 1, 4) >= 2021) or

UPPER(DS_ACAO) LIKE ('PONTO%DE ATENDIMENTO%') or
UPPER(DS_ACAO) LIKE ('PORTA A PORTA%') -- OK
or UPPER(DS_ACAO) LIKE ('SALA%DO%EMPREENDEDOR%')) and
substr(cc.ch_ano_ccusto, 1, 4) >= 2020 and
cc.CD_PRATIF <> 'PR002007ATPS' then --Inserido novamento a pedido da Dayse 20200708

CASE
WHEN upper(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1))) LIKE
'SALA%DO%EMPREENDEDOR' THEN
'Salas do Empreendedor'
WHEN upper(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1))) LIKE
'PONTO%DE ATENDIMENTO' THEN
'Pontos de Atendimento'

-- CANAL ESCRITORIO PARTE 1
WHEN UPPER(DS_PROJETO) LIKE ('CANAL ESCRITÓRIO%') and substr(cc.ch_ano_ccusto, 1, 4) >= 2021 THEN
'Escritório'

else
INITCAP(trim(substr(ds_acao, 0, instr(ds_acao, '-') - 1)))

END

-- CANAL ESCRITORIO REGRA INCLUÍDA 20210723
WHEN CCSGE.ds_obj_estrat_local IN (

'P 1.2 - Preparar empresas para serem mais competitivas',
'P 1.3 - Desenvolver empresas com potencial competitivo, em padrões internacionais',
'P 1.4 - Contribuir para o desenvolvimento das startups e de seus ecossistemas no Estado',
'P 8 - Preparar lideranças com foco em competências duráveis (ser) e competências transitórios (saber) tornando-os agentes eficazes de transformação'

) AND
substr(cc.ch_ano_ccusto, 1, 4) >= 2021 THEN
'Escritório'

--CANAL DIGITAL - OK
WHEN UPPER(DS_PROJETO) = UPPER('PR - Atendimento Remoto') THEN --and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 THEN
'Digital'


end as ds_canal_atendimento_ccusto,

/* REGRA ANTERIOR
case
when CCSGE.ds_obj_estrat_local = 'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial'
and --removido 20200501 a pedido da Dayse
--Inserido novamento a pedido da Dayse 20200708
(
UPPER(DS_ACAO) LIKE UPPER('Escritório%')
or UPPER(DS_ACAO) LIKE UPPER('Ponto de Atendimento%')
or UPPER(DS_ACAO) LIKE UPPER('Porta a Porta%')
or UPPER(DS_ACAO) LIKE UPPER('Sala do Empreendedor%')
)
and substr(cc.ch_ano_ccusto, 1, 4) >= 2020
and cc.CD_PRATIF <> 'PR002007ATPS' then --Inserido novamento a pedido da Dayse 20200708
trim(substr(ds_acao,0,instr(ds_acao, '-') -1))
WHEN UPPER(DS_PROJETO)= UPPER('PR - Atendimento Remoto') THEN--and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 THEN
'Digital'
--when (CCSGE.ds_obj_estrat_local is null or CCSGE.ds_obj_estrat_local <> 'P 1.1 - Preparar o indivíduo para empreender e gerenciar melhor o seu empreendimento por meio de atendimento presencial') and substr(cc.ch_ano_ccusto, 1, 4) >= 2020 then
-- 'Escritório'
end as ds_canal_atendimento_ccusto,
*/

TO_DATE(cc.DT_INIC_PROJ, 'YYYYMMDD') AS DT_INIC_PROJ, -- novo
TO_DATE(cc.DT_FIM_PROJ, 'YYYYMMDD') AS DT_FIM_PROJ, -- novo
cc.DS_PROGRAMA_LOCAL,
cc.ch_unidade

from bi_dw.d_ccusto cc
inner join bi_dw.d_periodo_ano_mes p
on p.nr_ano = substr(cc.ch_ano_ccusto, 1, 4)
INNER join bi_dw.d_unidade udd
on udd.ch_unidade = cc.ch_unidade
LEFT JOIN BI_DW.D_LOCALIDADE LOC
ON udd.ch_localidade = loc.CH_LOCALIDADE
left join bi_dw.D_CCUSTO_SGE_CATEG ccsge
on ccsge.ch_pratif_na = cc.cd_pratif_na
and CC.nr_ano_proj = ccsge.nr_ano
where substr(cc.ch_ano_ccusto, 1, 4) >= extract(year from sysdate) - 2
order by CH_ANO_CCUSTO, p.ch_periodo_ano_mes;

 

Oque eu preciso manter a regra abaixo  : 

count(distinct{1<FG_CONTAB={"0"},TP_MOTIVO_REJEICAO_DIVISAO_REJ={"2"}>} CH_AGENTE) mas ignorando o filtro automático por centro de custo , porém quando o cliente clicar em um centro de custo ele altere o valor informando os rejeitados no centro de custo que foi selecionado , bem complexo espero que tenha ficado claro .

 

Agradeço a ajuda de todos que puderem me auxiliar .

0 Replies