Como podemos descobrir que os funcionários já tiraram férias de um ano fiscal ou apenas mais?

John Lee

Como podemos descobrir se os funcionários já tiraram férias de um ano fiscal com uma consulta? Esta empresa em particular considera que a duração do seu ano fiscal consiste aproximadamente no trimestre de outono do ano atual, no trimestre de inverno e no trimestre de primavera do próximo ano.

digamos que temos uma tabela que contém todos os funcionários como eid (string).

Em seguida, uma tabela de programação (em vez de tabela de férias) como eid (string), departid (string), trimestre (string), ano (inteiro). Recebemos uma tabela de programação para descobrir se todos os funcionários tiram férias de um ano fiscal ou apenas mais.

employees
+-----+
| id  | 
+-----+ 
| e01 | 
+-----+ 
| e02 |  
+-----+ 
| e03 | 
+-----+ 
| e04 | 
+-----+ 


schedule
+----+-------------+-------------+-------------+
| eid| departid    | quarter     |   year      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Winter      |   2013      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2013      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2013      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2015      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2015      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2015      |
+----+-------------+-------------+-------------+
| e01| marketing01 | Fall        |   2015      |
+----+-------------+-------------+-------------+
| e02| theboard00  | Spring      |   2017      |
+----+-------------+-------------+-------------+
| e02| theboard00  | Winter      |   2019      |
+----+-------------+-------------+-------------+
| e02| theboard00  | Winter      |   2020      |
+----+-------------+-------------+-------------+
| e02| enginering01| Winter      |   2020      |
+----+-------------+-------------+-------------+
| e03| marketing01 | Spring      |   2018      |
+----+-------------+-------------+-------------+
| e03| marketing01 | Spring      |   2020      |
+----+-------------+-------------+-------------+
| e03| marketing01 | Spring      |   2020      |
+----+-------------+-------------+-------------+
| e04| marketing01 | Spring      |   2019      |
+----+-------------+-------------+-------------+
| e04| marketing01 | Spring      |   2020      |
+----+-------------+-------------+-------------+
| e04| marketing01 | Spring      |   2020      |
+----+-------------+-------------+-------------+
| e04| marketing01 | Spring      |   2018      |
+----+-------------+-------------+-------------+
| e05| marketing01 | Spring      |   2020      |
+----+-------------+-------------+-------------+
| e05| marketing01 | Spring      |   2001      |
+----+-------------+-------------+-------------+
| e06| marketing01 | Fall        |   2016      |
+----+-------------+-------------+-------------+
| e06| marketing01 | Fall        |   2018      |
+----+-------------+-------------+-------------+
| e07| theboard00  | Spring      |   2016      |
+----+-------------+-------------+-------------+
| e07| theboard00  | Fall        |   2017      |
+----+-------------+-------------+-------------+

A consulta deve retornar e02, e03, e05, e06, e07, pois

e02 work Spring 2017, Winter 2019 (more than year-long vacation)
e03 work Winter 2018, Fall   2020 (more than year-long vacation)
e05 work Fall   2001, Fall   2020 (way more than year-long vacation)
e06 work Fall   2016, Fall   2018 (way more than year-long vacation)
e07 work Spring 2016, Fall   2017 (year-long vacation)

O que tenho até agora, não muito, mas bloqueado por uma coisa:

Select eid
From (bad employees)
 
bad employees=
Select * 
From vacation, employees
where  
group by eid, year, quarter 

Eu fico preso em uma validação de férias de longo ano fiscal. Qualquer ponteiro é apreciado

morre

Você pode fazer isso com uma auto-junção, agregação e uma condição na HAVINGcláusula:

SELECT v1.eid
FROM vacation v1 INNER JOIN vacation v2
ON v1.year = v2.year - 1
WHERE v1.quarter = 'Fall' AND v1.quarter <> v2.quarter
GROUP BY v1.eid
HAVING COUNT(*) = 2

E se você quiser os detalhes dos funcionários:

SELECT * FROM employees
WHERE id IN (
  SELECT v1.eid
  FROM vacation v1 INNER JOIN vacation v2
  ON v1.year = v2.year - 1
  WHERE v1.quarter = 'Fall' AND v1.quarter <> v2.quarter
  GROUP BY v1.eid
  HAVING COUNT(*) = 2
)

Veja a demonstração .
Resultados:

Eu iria
e01

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como podemos descobrir que todos os funcionários já tiraram férias de um ano fiscal ou apenas mais em uma tabela de horários?

Obtenha todos os funcionários com 1 ano ou mais de experiência

Como selecionar apenas os indivíduos que aparecem em cada ano de um dataframe em r

Como exibir vários itens, mas apenas os valores mais altos no ano e mês para cada um?

NETSUITE - Pesquisa salva - Mostrar que os funcionários têm um ano hoje

Como posso substituir mais de uma string por outra usando apenas um Regex ou tenho que usar várias strings Regex e temporárias?

Consulta para contar funcionários e exibir departamentos que têm mais de um funcionário

extrair apenas as linhas de um determinado ano, e contar os valores mais vistos

Consulta para listar os departamentos que têm mais funcionários do que um determinado departamento

Como podemos obter um id de máquina exclusivo ou algum id de todos os usuários para ver se eles estão atualizados para a versão mais recente do angular implantada?

Dadas duas árvores de diretórios, como descobrir quais nomes de arquivos são iguais, considerando apenas os nomes de arquivos que satisfazem uma condição?

Como descobrir se dois ou mais elementos continuamente de um vetor são iguais em R

Como obter o 2º maior salário de cada funcionário na tabela de funcionários que contém mais de uma entrada na tabela de funcionários

Como inverter ou filtrar os dois funcionários que trabalham em projetos em outros departamentos?

O que é mais rápido: vários INSERTs únicos ou um INSERT de várias linhas?

Dê os nomes dos funcionários que vendem produtos de mais de 10 fornecedores

Como criar um formulário que consiste em uma opção de campo apenas ANO?

Remover duplicatas de ArrayList <JsonJavaObject> ou como descobrir se um item semelhante já existe em arraylist?

Como podemos copiar apenas os novos itens de dados que são adicionados em um nó para outro nó no banco de dados firebase

Como descobrir "Os repositórios mais populares" no Github?

Como obter os itens mais vendidos há um ano

Como esses ponteiros apontam para mais do que apenas um caractere ou um byte?

Soma os valores em uma coluna de todas as linhas que correspondem a um ou mais de vários critérios

Selecione apenas os valores que possuem um ou mais valores específicos no SQL Server

Como posso descobrir os rótulos de nó repetidos em um caminho no Neo4j?

Como encontrar todos os usuários que estiveram inativos por um mês ou mais no Git Hub

Como eu pegaria a mesa e retornaria apenas os itens que aparecem três vezes ou mais?

Como usar os valores do ano fiscal em Python?

Como usar os valores do ano fiscal em Python?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo