Free cookie consent management tool by TermsFeed Policy Generator
  • SQL Server Vídeo
  •    83 visualizações da página
  •   2512 visualizações do vídeo
  • 2024, maio 04, sábado

#078 Como identificar conflitos entre datas na escala de férias no SQL Server

Como identificar o conflito entre as datas de férias dos funcionários e contabilizar a quantidade de dias em que os mesmos estão em conflito

Iremos conhecer as técnicas:

1. Criar tabela de constantes (VALUES):

  • A cláusula VALUES é usada para criar uma tabela de constantes no SQL Server. Pode ser útil para fornecer conjuntos de valores específicos em uma consulta.

    Exemplo:

    SELECT *
    FROM (VALUES (1, 'Valor1'), (2, 'Valor2'), (3, 'Valor3')) AS TabelaExemplo (Coluna1, Coluna2);
    

2. Contar quantidade de dias entre datas (DATEDIFF, DAY):

  • A função DATEDIFF é usada para calcular a diferença entre duas datas em unidades específicas, como dias. O exemplo abaixo conta a quantidade de dias entre duas datas.

    Exemplo:

    SELECT DATEDIFF(DAY, DataInicio, DataFim) AS QuantidadeDias
    FROM TabelaExemplo;
    

3. Converter tipo de dados texto para data (CAST, DATETIME):

  • A função CAST é usada para converter um tipo de dados para outro. Neste caso, estamos convertendo uma string em uma data.

    Exemplo:

    SELECT CAST('2023-01-01' AS DATETIME) AS DataConvertida;
    

4. Comparar valores entre os registros (CROSS APPLY):

  • A cláusula CROSS APPLY pode ser usada para aplicar uma subconsulta a cada linha do conjunto de resultados principal, permitindo a comparação entre valores de registros diferentes.

    Exemplo:

    SELECT A.Coluna1, B.Coluna2
    FROM TabelaA A
    CROSS APPLY (SELECT TOP 1 Coluna2 FROM TabelaB WHERE Coluna1 = A.Coluna1) AS B;
    

5. Expressão de tabela Comum (CTE):

  • A Expressão de Tabela Comum (CTE) é uma forma de criar uma tabela temporária dentro de uma consulta. Pode ser referenciada várias vezes na mesma consulta.

    Exemplo:

    WITH CTEExemplo (Coluna1, Coluna2) AS (
        SELECT Col1, Col2 FROM TabelaOrigem WHERE Condicao
    )
    SELECT * FROM CTEExemplo;
    

6. Identificar férias e contar dias em conflito (CASE, WHEN, DATEDIFF):

  • O uso de CASE e WHEN permite a identificação de férias ou dias específicos para contagem de dias em conflito.

    Exemplo:

    SELECT *,
           CASE WHEN DataInicio BETWEEN '2023-01-01' AND '2023-01-10' THEN 'Férias' ELSE 'Trabalho' END AS StatusDia
    FROM TabelaExemplo;
    

7. Filtrar registros (WHERE, CONDITIONAL):

  • A cláusula WHERE é utilizada para filtrar registros com base em condições específicas. O exemplo a seguir filtra registros onde uma condição é atendida.

    Exemplo:

    SELECT *
    FROM TabelaExemplo
    WHERE Coluna1 > 10;
    

Esses conceitos no SQL Server proporcionam uma variedade de funcionalidades, desde a manipulação de dados até a aplicação de lógicas condicionais e a criação de estruturas temporárias para facilitar consultas mais complexas.

Este contéudo contém
  • Conteúdo Vídeo
  • Idioma Português
  • Duração 8m 53s
  • Legenda Sim

  • Tempo de leitura 1 min 54 seg

avatar
Fabio Santos

Cientista de Dados e Consultor de Soluções Digitais e Analíticas


  • Compartilhe

Youtube Channel

@fabioms

Inscreva-se agora