Bonsoir,
Je voudrais faire le planning des 5 équipes sur le trimestre qui constituent le groupe. Les équipes sont A,B,C,D et E. Chaque equipe travaille 4 jours et se repose le 5e.
Soit A l'equipe au repos le 21 Août, B le 22 Août, C le 23 Août, D le 24 Août et E le 25 Août. Pour se faire j'ai créer une Table Calendrier constitué comme suit:
(le script de remplissage de la table Calendrier en fichier joint).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE TABLE Calendrier( CalDate date primary key, CalDateStr varchar(10) NOT NULL, CalYear int NOT NULL, CalMonth int NOT NULL, CalMonthStr varchar(9) NOT NULL, CalTrim int NOT NULL, CalDay int NOT NULL, CalDW int NOT NULL, CalDWstr varchar(8) NOT NULL, CalWeek int NOT NULL, CalWeekYear int NOT NULL, CalWorked bit NOT NULL )
Mon est le suivant:
Et ensuite faire un pivot si possible pour affichage comme un calendrier. La requete est fichier joint.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 DECLARE @EquipeAuRepos char(2),@DateDebut datetime,@DateFin datetime,@NbreEquipe int SET @DateDebut = '20/08/2014' SET @DateFin = '01/11/2014' SET @NbreEquipe = 5 WHILE (@DateDebut < @DateFin ) BEGIN SELECT [ANNEE] = (DATENAME(YEAR,CalDate)), [MOIS]=(UPPER(DATENAME(MONTH,CalDate))),[DATE]=CONVERT(varchar,(SELECT DAY(CalDate)),105) , EquipeAuRepos = CASE WHEN ((SELECT DATEDIFF(DAY,@DateDebut,@DateFin)% @NbreEquipe) ) = 0 THEN 'A' WHEN ((SELECT DATEDIFF(DAY,@DateDebut,@DateFin)% @NbreEquipe) ) = 1 THEN 'B' WHEN ((SELECT DATEDIFF(DAY,@DateDebut,@DateFin)% @NbreEquipe) ) = 2 THEN 'C' WHEN ((SELECT DATEDIFF(DAY,@DateDebut,@DateFin)% @NbreEquipe) ) = 3 THEN 'D' WHEN ((SELECT DATEDIFF(DAY,@DateDebut,@DateFin)% @NbreEquipe) ) = 4 THEN 'E' END FROM Calendrier WHERE [CalDate] BETWEEN @DateDebut AND @DateFin SET @DateDebut = (SELECT DATEADD(DAY,1 ,@DateDebut)) IF ( @DateDebut = @DateFin) BREAK ELSE CONTINUE END --SELECT * FROM Calendrier
Mon souhait est de faire un planning comme sur l'image:
Quelqu'un aurait-il une piste?
Cordialement.
Partager