Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
paulomulato
Contributor

Carga Tabela Where

Senhores, preciso de um auxilio, no modelo em anexo, preciso fazer um carga onde me traga os clientes com "QtVd Total" maior ou igual a "12" para cada grupo de produtos "EC_1a4". No modelo em anexo, a carga deveria me trazer apenas o cliente "46383", pois o outro cliente teve um grupo com quantidade inferior a "12".

Tags (1)
1 Solution

Accepted Solutions
el_aprendiz111
Valued Contributor

Re: Carga Tabela Where

Paulo buenas tardes

esto te puede servir como solución:

tmp:
LOAD *, if(QtVd_Total<12,Cliente) AS FILT_ini;
LOAD * INLINE [
Cliente, ComboEC_1a4, EC_1a4, QtVd_Total, Total_Grupo
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE LENHA,                           12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE MATADOR,                   12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE PEGADOR OU CABRA MACHO, 12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE VIP,                        1, 4
46383,   DESODORANTES, DESODORANTE AEROSOL OLD SPICE LENHA,                       12, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE MATADOR,                     12, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE PEGADOR OU CABRA MACHO, 24, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE VIP,                         12, 4

]
;

tblPrm:
LOAD  Concat(chr(39) & FILT_ini & chr(39) & ',') as MyFil Resident tmp;
LET vCliente = Peek('MyFil');

NoConcatenate

SUMARY:
LOAD
Cliente,
ComboEC_1a4,
EC_1a4,
FILT_ini,
QtVd_Total,
Total_Grupo
Resident tmp
Where not WildMatch(Cliente,$(vCliente));
DROP Field FILT_ini;

DROP Table tblPrm, tmp;

wildmat.png

7 Replies
marcelvinicius
Contributor III

Re: Carga Tabela Where

Boa tarde amigo,

Desculpa mas não entendi o que você precisa. Precisa colocar um Where no Load que esta fazendo?

Ou quando esta utilizando os dados?

Manual do usuário | Como criar e gerir minhas perguntas?

mario.sergio.ti

paulomulato
Contributor

Re: Carga Tabela Where

Preciso colocar um Where no Load...

marcelvinicius
Contributor III

Re: Carga Tabela Where

where QtVd_Total >= 12;

Não seria isso?

paulomulato
Contributor

Re: Carga Tabela Where

Na verdade nao, tenho que avaliar todos os grupos comprados "EC_1a4" e verificar se atende a condicao.

paulomulato
Contributor

Re: Carga Tabela Where

A ideia é que a carga me traga somente os clientes em que todos os grupos "EC_1a4" , atenda ao criterio.

el_aprendiz111
Valued Contributor

Re: Carga Tabela Where

Paulo buenas tardes

esto te puede servir como solución:

tmp:
LOAD *, if(QtVd_Total<12,Cliente) AS FILT_ini;
LOAD * INLINE [
Cliente, ComboEC_1a4, EC_1a4, QtVd_Total, Total_Grupo
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE LENHA,                           12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE MATADOR,                   12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE PEGADOR OU CABRA MACHO, 12, 4
230601, DESODORANTES, DESODORANTE AEROSOL OLD SPICE VIP,                        1, 4
46383,   DESODORANTES, DESODORANTE AEROSOL OLD SPICE LENHA,                       12, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE MATADOR,                     12, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE PEGADOR OU CABRA MACHO, 24, 4
46383,      DESODORANTES, DESODORANTE AEROSOL OLD SPICE VIP,                         12, 4

]
;

tblPrm:
LOAD  Concat(chr(39) & FILT_ini & chr(39) & ',') as MyFil Resident tmp;
LET vCliente = Peek('MyFil');

NoConcatenate

SUMARY:
LOAD
Cliente,
ComboEC_1a4,
EC_1a4,
FILT_ini,
QtVd_Total,
Total_Grupo
Resident tmp
Where not WildMatch(Cliente,$(vCliente));
DROP Field FILT_ini;

DROP Table tblPrm, tmp;

wildmat.png

paulomulato
Contributor

Re: Carga Tabela Where

Gracias Fer Fer, era exactamente lo que necesitaba ...