Last active
March 4, 2021 12:39
-
-
Save thiagosperandio/f68fc1ddca681fcb9e079708477c1462 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Vinculações - análise de concomitância: | |
Regra: dado um elemento de apelido "c", pesquiso na base se existe um "cx" concomitante: [ | |
and ( c.inicio <= cx.fim or cx.fim is null ) | |
and ( c.fim is null or c.fim >= cx.inicio ) | |
] | |
Obs.: Dependendo da análise, podem querer adicionar um "[ and c.id <> cx.id ]" para não considerar o mesmo elemento como concomitante. Mas tem caso que eu não posso usar isso. | |
Testes: Períodos concomitantes | |
01/02/2020 a 31/03/2021 - contrato | |
01/03/2020 a 31/08/2020 - outro contrato | |
01/02/2020 <= 31/08/2020 ? sim | |
31/03/2021 >= 01/03/2020 ? sim | |
01/03/2020 a 31/08/2020 - contrato | |
01/02/2020 a 31/03/2021 - outro contrato | |
01/03/2020 <= 31/03/2021 ? sim | |
31/08/2020 >= 01/02/2020 ? sim | |
01/03/2020 a 31/03/2021 - contrato | |
01/02/2020 a 31/08/2020 - outro contrato | |
01/03/2020 <= 31/08/2020 ? sim | |
31/03/2021 >= 01/02/2020 ? sim | |
01/02/2020 a 31/08/2020 - contrato | |
01/03/2020 a 31/03/2021 - outro contrato | |
01/02/2020 <= 31/03/2021 ? sim | |
31/08/2020 >= 01/03/2020 ? sim | |
Prova real: Períodos não concomitantes | |
01/02/2019 a 28/02/2020 - contrato | |
01/03/2020 a 31/03/2021 - outro contrato | |
01/02/2019 <= 31/03/2021 ? sim | |
28/02/2020 >= 01/03/2020 ? não! | |
01/03/2020 a 31/03/2021 - contrato | |
01/02/2019 a 28/02/2020 - outro contrato | |
01/03/2020 <= 28/02/2020 ? não! | |
31/03/2021 >= 01/02/2019 ? sim |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bom dia! A alguns anos eu fiz essa lógica pra encontrar concomitâncias e hoje estou precisando de novo. Como ela é confusa pra quem lê, eu fiz uns testes de mesa porque, sinceramente... eu buguei!
Aí aproveito pra passar pra vocês, pois as vezes vcs devem precisar disso...
A parte legal: resolve em 2 linhas a análise de concomitância.