Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde, gente. Estou com a seguinte situação: ao recolher os dados da base onde trabalho, vem um campo de valor de turma de capacitação, ValorTurmaCapacitacao. Só que o nível de granularidade da tabela que estou montando na aplicação Qlik é por colaborador. Com isso, eu preciso dividir o ValorTurmaCapacitacao pela quantidade de linhas por identificação do evento_turma, Chave_Evento, de forma que conste em cada linha o valor pago por colaborador para determinada capacitação e turma. Já pensei como fazer isso por set analysis no front, por aggr no front, mas nenhuma das formas está funcionando corretamente. Aí resolvi pedir ajuda por formas de fazer isso aqui, preferencialmente no script de carga, mas qualquer solução é bem vinda e me ajuda muito.
pedaço da carga para ajudar a visualizar melhor como seria essa tabela que estou falando:
Eventos_Capacitacao:
LOAD
CodEventoRealizado&'-'&CodTurma as Chave_Evento,
CodEmpregado,
NomeParceiro,
NomeCapacitacao,
CargaHorariaCapacitacao,
ValorTurmaCapacitacao,
;
SQL SELECT [...]
Victor, se eu entendi bem, você precisa saber quantas vezes o valor de "Chave_Evento" se repete nos seus dados pra saber "quantas pessoas" participaram no evento e poder dividir o valor de "ValorTurmaCapacitacao" por essa quantidade, correto?
Se for isso, para resolver no script penso que você pode carregar seus dados como esta fazendo, depois faz um group by nessa tabela nova que você gerou fazendo um count do "Chave_Evento" e ai faz um Left Join pra sua primeira tabela para incluir o valor do count e depois um novo load na tua resident para fazer o calculo.
auxEventos:
LOAD
CodEventoRealizado&'-'&CodTurma as Chave_Evento,
CodEmpregado,
NomeParceiro,
NomeCapacitacao,
CargaHorariaCapacitacao,
ValorTurmaCapacitacao,
;
SQL SELECT [...]
Left Join (auxEventos) Load
Chave_Evento,
Count(Chave_Evento) as Qtd_Participantes
Resident auxEventos
Group by Chave_Evento;
Eventos_Capacitacao:
Load
*,
ValorTurmaCapacitacao / Qtd_Participantes as Valor_Participante
Resident auxEventos;
Drop Table auxEventos;
Gente, procurei ser o mais claro possível e colocar as informações necessárias para possibilitar uma resposta. Como ninguém respondeu até agora, pergunto: faltou alguma coisa importante?
Victor, se eu entendi bem, você precisa saber quantas vezes o valor de "Chave_Evento" se repete nos seus dados pra saber "quantas pessoas" participaram no evento e poder dividir o valor de "ValorTurmaCapacitacao" por essa quantidade, correto?
Se for isso, para resolver no script penso que você pode carregar seus dados como esta fazendo, depois faz um group by nessa tabela nova que você gerou fazendo um count do "Chave_Evento" e ai faz um Left Join pra sua primeira tabela para incluir o valor do count e depois um novo load na tua resident para fazer o calculo.
auxEventos:
LOAD
CodEventoRealizado&'-'&CodTurma as Chave_Evento,
CodEmpregado,
NomeParceiro,
NomeCapacitacao,
CargaHorariaCapacitacao,
ValorTurmaCapacitacao,
;
SQL SELECT [...]
Left Join (auxEventos) Load
Chave_Evento,
Count(Chave_Evento) as Qtd_Participantes
Resident auxEventos
Group by Chave_Evento;
Eventos_Capacitacao:
Load
*,
ValorTurmaCapacitacao / Qtd_Participantes as Valor_Participante
Resident auxEventos;
Drop Table auxEventos;
Nossinhora. Muito mas muito obrigado mesmo. Resolveu meu problema e ainda me deu ideias de como resolver vários problemas semelhantes.