Bonjour,
J'ai le paramétrage suivant qui me permet de regrouper les jours en "intervalles" :
Je désirerai obtenir la liste suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE TABLE INTERVALLE_JOUR (CODE_INTERVALLE CHAR(2), NOM_INTERVALLE VARCHAR(255), NUMERO_JOUR SMALLINT) INSERT INTERVALLE_JOUR SELECT '00', 'AUTRES JOURS', 0 UNION SELECT 'EF', 'JOUR ENFANT', 4 UNION SELECT 'CO', 'JOUR COURSES', 7 UNION SELECT 'RE', 'JOUR REPOS', 1
JOUR | CODE_INTERVALLE
1 | RE
2 | 00
3 | 00
4 | EF
5 | 00
6 | 00
7 | CO
J'ai pensé à
Mais ce me semble redondant et un peu lourd. On pourrait arguer que le paramétrage pourrait se faire pour les 7 jours, mais les valeurs par défaut sont bien pratiques quand même...
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 SELECT 1 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 1 ) UNION SELECT 2 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 2 ) UNION SELECT 3 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 3 ) UNION SELECT 4 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 4 ) UNION SELECT 5 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 5 ) UNION SELECT 6 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 6 ) UNION SELECT 7 AS JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NOT EXISTS ( SELECT * FROM INTERVALLE_JOUR (NOLOCK) WHERE NUMERO_JOUR = 7 ) UNION SELECT NUMERO_JOUR, CODE_INTERVALLE FROM INTERVALLE_JOUR WHERE NUMERO_JOUR <> 0
Partager