Fala, galera, beleza?
Hoje trouxe um desafio, onde a ideia em geral é bem simples, escrever um T-SQL que atenda o solicitado com a melhor performance possível. No final, irei postar o resultado e as melhores soluções.
Update: A resposta desse desafio já foi lançada e você consegue conferir em: https://vulgomarcio.home.blog/2020/11/14/resposta-desafio-01-tsql-performance/
Espero que vocês se divirtam tanto quanto eu.
Estão disponíveis 2 tabelas, sendo:
Tabela Jornada
Utilizando a coluna ID_JORNADA, você poderá cruzar os dados da tabela JORNADA com a tabela JORNADA_ADICIONAL.

Tabela Jornada_Adicional
O mesmo ID_JORNADA pode aparecer diversas vezes nesta tabela.
Sobre esta tabela, eu posso afirmar que:
O ID_JORNADA 7 teve três Jornadas adicionais, são elas:
- 2020-03-27 16:43:55.363 até 2020-03-27 16:44:04.990;
- 2020-03-27 16:44:14.193 até 2020-03-27 16:44:19.073;
- 2020-03-27 17:07:20.660 até 2020-03-27 17:07:29.510.

OUTPUT esperado:
Como é um relatório de folha de ponto, foi solicitado que cada JORNADA_ADICIONAL seja exibido como coluna.
Para ser mais específico, eu deveria trazer o horário de início e fim adicional em ordem cronológica.

Alguns fatos/requisitos:
- As colunas devem retornar na sequência DH_INICIO_ADICIONAL_1, DH_FIM_ADICIONAL_1, DH_INICIO_ADICIONAL__2, DH_FIM_ADICIONAL_2 e assim por diante; (De acordo com a ordem cronológica)
- Os dados contidos no arquivo “Criando Cenario de Dev” foi disponibilizado no final do post. Ele dá somente a possibilidade de 6 colunas (INÍCIO + FIM) para o ID_JORNADA 7, porém, o código deve ser dinâmico, pois é possível que a quantidade de colunas venha ser maior ou menor, dependendo da quantidade de linhas encontradas na tabela Jornada_adicional.
- Os dados contidos no Arquivo “Carga” são para teste de performance.
As soluções devem ser enviadas para o e-mail: marciojuniior.mj@outlook.com
Peço que por favor, não coloquem as respostas no comentário.
Valeu e até breve!
(O retorno sobre este post irá acontecer assim que tivermos uma quantia considerável de soluções)
Link para os scripts: https://github.com/Nusyc/Desafio01
Deixe um comentário