Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
prezados,
Tenho uma tabela inline conforme abaixo:
necessito montar uma tabela cujo dimensão seja "VL" E A EXPRESSÃO conte quantos id tem com aquele valor, sendo que deve ser considerado somente 1 vez o ID que é o que tem o maior valor dentro do periodo filtrado, exemplo:
filtro 01/2017
resultado:
VL | COUNT(ID)
4 | 2
6 | 1
SEM FILTRO:
VL | COUNT(ID)
6 | 3
LOAD * INLINE [
ID,VL,MESANO
1,2,01/2017
1,4,01/2017
1,2,01/2017
1,5,02/2017
1,3,02/2017
1,1,02/2017
1,6,03/2017
1,5,03/2017
1,4,03/2017
2,2,01/2017
2,6,01/2017
2,3,01/2017
2,4,01/2017
2,5,02/2017
2,2,02/2017
2,6,02/2017
3,3,01/2017
3,4,01/2017
3,5,02/2017
3,2,02/2017
3,6,02/2017
3,3,03/2017
3,4,03/2017
3,5,03/2017
];
RESOLVIDO COMA EXPRESSÃO ABAIXO.
IF(NIVEL='NIVEL C',
COUNT(TOTAL DISTINCT{<NIVEL={'NIVEL C'}>}ID),
IF(NIVEL='NIVEL B',
COUNT(TOTAL DISTINCT {<ID=P({<NIVEL={'NIVEL B'}>}ID)>-$<ID=P({<NIVEL={'NIVEL C'}>}ID)>}ID),
IF(NIVEL='NIVEL A',
COUNT(TOTAL DISTINCT {<ID=E({<NIVEL={'NIVEL C','NIVEL B'}>}ID)>}ID)
)))
Uma forma seria...
Tmp:
LOAD * INLINE [
ID,VL,MESANO
1,2,01/2017
1,4,01/2017
1,2,01/2017
1,5,02/2017
1,3,02/2017
1,1,02/2017
1,6,03/2017
1,5,03/2017
1,4,03/2017
2,2,01/2017
2,6,01/2017
2,3,01/2017
2,4,01/2017
2,5,02/2017
2,2,02/2017
2,6,02/2017
3,3,01/2017
3,4,01/2017
3,5,02/2017
3,2,02/2017
3,6,02/2017
3,3,03/2017
3,4,03/2017
3,5,03/2017
];
Resumo:
NoConcatenate
LOAD
MESANO,
ID,
max(VL) as VL
Resident Tmp Group by MESANO,ID;
//
DROP Table Tmp;
e na expressão count(distinct ID)
Boa tarde Alessandro,
Obrigado pela ajuda, mas eu resumi a questão.
Existe outros filtros vinculado a tabela, inclisive dia.
Eu gsotaria de achar uma solução dentro do tabela(grafico) mesmo mesmo.
e Outra se filtrar 2 meses daria o calculo errado.
Marcel,
Complicado isso que você quer... Bom fiz um teste aqui, fazendo por expressão, já que você diz que por script não dá pois precisa mudar conforme o filtro.
Vai adaptando e agrupando conforme tua base.
Verifique as expressões e a dimensão criada na tabela:
Segue QVD
Michelly,
Quase deu certo, eu achei que não seria necessario explicar a relação de outra dimensão que eu necessito adicionar, mas quando eu adiciono uma dimensão da classificação o mesmo se perde, como fora a tabela eu também terei um gráfico de barras com esses valores logo seria necessário ter somente a dimensão da classificação.
Vou anexar um exemplo no qvw que você anexou.
Obrigado pela ajuda.
Mestre Clever tem alguma dica?
marcelviegas, a chave entre as tabelas é o VL??? A lógica se perdeu por conta dessa chave, o correto não seria o ID?
É no valor mesmo, pois através do valor eu classifico aquela informação, vou anexar o qvw para vc da uma olhada, inseri um applymap para tirarmos essa relação e evitar confusão.
Consegui tratar o nivel A no grafico, falta somente o B e o C, mas estou no caminho eu acho.
Para contar o nivel A não pode ter o mesmo ID no B e nem no C.
Para contar no nivel B o ID não pode contar no C.
E para contar no C tem que ter a classificação no C.
Segue QVW
falta tratar somente o nivel b
IF(NIVEL='NIVEL C',
COUNT(TOTAL DISTINCT{$<NIVEL={'NIVEL C'}>}ID),
IF(NIVEL='NIVEL B',
COUNT(DISTINCT TOTAL {<ID+=P({<NIVEL={'NIVEL B'}>-<NIVEL={'NIVEL C'}>}ID)>}ID),
IF(NIVEL='NIVEL A',
COUNT(DISTINCT TOTAL {<ID=E({<NIVEL={'NIVEL C','NIVEL B'}>}ID)>}ID)
)))