Temos um problema interessante em torno de dados duplicados. Nossos arquivos de origem podem conter várias linhas de dados para um único benefício de funcionário. Por exemplo, um benefício de assistência médica pode ser dividido e relatado em 3 linhas (3 é apenas um exemplo - pode ser muito mais).
Os dados são carregados na preparação sem problemas e conterão uma mistura de linhas de benefícios únicos e múltiplos. O que fiz até agora foi realizar a agregação para localizar a identificação com vários benefícios (agregados em Employeesid e BenefitID) e, se for > 1, movê-lo para uma tabela de preparação separada.
O que preciso fazer agora é analisar a tabela de preparação com vários benefícios e agregar os dados com base em Employeesid e BenefitID. Vamos supor que um benefício tenha 3 linhas.
OEmployeeid e o BenefitID serão a chave para identificar essas linhas. Outras linhas podem incluir o provedor de benefícios, custo anual, nome do benefício e elegível (e muito mais, mas abrangem os 4 tipos de agregação necessários para gerar uma única linha).
- se houver vários provedores na lista de 3, devemos definir o valor como "Múltiplo", caso contrário, deve ser o valor distinto
- o custo anual é simples...SOMA de todas as 3 linhas
- se algum dos sinalizadores ativos for verdadeiro, defina o valor como verdadeiro (1 pode ser verdadeiro e 2 pode ser falso)
- se houver vários nomes de benefício, apenas selecionamos o primeiro valor não nulo.
Depois que os dados são agregados (3 linhas em 1, aplicando as regras acima), eles são mesclados com a tabela de benefícios de linha única.
Como você está usando 2012+, você tem funções de janela disponíveis para você, o que acho que torna isso mais fácil de resolver.
Aqui está a minha configuração.
Eu então olharia para uma consulta algo como isto
Escolhendo alguns dos truques da consulta