Buongiorno a tutti amici, ho un db sql server 2014 in cui inserisco i periodi di ferie che il personale chiede al datore di lavoro. In fase di inserimento devo verificare se la data che sto inserendo non va a sovrapporsi a un intervallo di date già presente nel db. Mi spiego meglio, se un dipendente mi chiede ferie dal 10 febbraio 2017 al 15 febbraio 2017 devo verificare nel db se per quel lavoratore e in quel range di date già sono registrati altri giorni di ferie, in modo tale da evitare il sovrapporsi di periodi. Se per esempio effettuo una ricerca dal 10 febbraio 2017 al 15 febbraio 2017 la query mi restituisce ciò che desidero, mentre se effettuo una ricerca dal 12 febbraio al 14 febbraio non mi viene restituito nulla. Di seguito il codice:
Il db è così composto:
CREATE TABLE [dbo].[Ferie] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Codfisc] VARCHAR (16) NOT NULL,
[Dal] DATE NOT NULL,
[Al] DATE NOT NULL,
[Tipo] VARCHAR (100) NOT NULL,
CONSTRAINT [PK_Ferie] PRIMARY KEY CLUSTERED ([Id] ASC)
);
Potreste aiutarmi nella creazione della query?
Grazie. Un saluto a tutti.
In merito alla problematica di sopra ho risolto e posto la soluzione. Se abbiamo i seguenti dati registrati in un db:
ID CODICE FISCALE DAL AL TIPO
2 GHJTU986JMNHJKMG 10/02/2017 15/02/2017 FERIE
8 GHJTU986JMNHJKMG 10/03/2017 20/03/2017 FERIE
9 GHJTU986JMNHJKMG 08/04/2017 13/04/2017 FERIE
10 GHJTU986JMNHJKMG 08/05/2017 12/05/2017 FERIE
11 GHJTU986JMNHJKMG 20/06/2017 25/06/2017 FERIE
12 GHJTU986JMNHJKMG 27/07/2017 28/07/2017 FERIE
13 GHJTU986JMNHJKMG 10/08/2017 11/08/2017 FERIE
14 GHJTU986JMNHJKMG 01/09/2017 15/09/2017 FERIE
15 GHJTU986JMNHJKMG 10/10/2017 15/10/2017 FERIE
16 GHJTU986JMNHJKMG 19/11/2017 22/11/2017 FERIE
19 GHJTU986JMNHJKMG 09/12/2017 11/01/2018 FERIE
inseriamo un nuovo periodo di ferie per un determinato dipendente e tramite il codice sottostante verificheremo se non va ad accavallarsi a un periodo già registrato:
Un saluto a tutti gli utenti.