Carregando ...
Desculpe, ocorreu um erro ao carregar o conteúdo.

33194Dúvidas com merge

Expandir mensagens
  • Vitor Bueno
    19 de ago de 2016
      Olá pessoal, 

      estou com um caso para resolver em SQLServer 2014 e gostaria do apoio de alguém.

      Tenho um conjunto de Lotação de funcionário, ano a ano, com o seguinte retorno:

      #      DtInicial  DtFinal    Setor           Cargo                         
      ------ ---------- ---------- --------------- ------------------------------
      1      19/04/2013 31/03/2014 OPERACIONAL     AUXILIAR DE LIMPEZA           
      2      01/04/2014 31/03/2015 OPERACIONAL     AUXILIAR DE LIMPEZA           
      3      01/04/2015 31/03/2016 OPERACIONAL     AUXILIAR DE LIMPEZA           
      4      01/04/2016 19/08/2016 ADM             CHEFE DE SETOR                


      Preciso que retorne somente quando houveram modificações de função ou quebra de período (não houve no caso):

      #      DtInicial  DtFinal    Setor           Cargo                         
      ------ ---------- ---------- --------------- ------------------------------
      1      19/04/2013 31/03/2016 OPERACIONAL     AUXILIAR DE LIMPEZA           
      4      01/04/2016 19/08/2016 ADM             CHEFE DE SETOR                



      Pensei em utilizar o MERGE para fazer a mesclagem, mas seria enter duas tabelas e não para a mesma. E mais, a função deveria saber se o período foi contínuo ou não.



      Alguém teria alguma idéia mais prática de como fazer isto (merge + a questão da data) sem precisar fazer um loop para o caso?


      Grato pela ajuda.

      Vitor