Débutant en T-SQL, je ne comprend pas d'où vient l'erreur qui m'est renvoyé !
Les erreurs : (toujours la 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 Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*24 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*27 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*29 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*36 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*37 Syntaxe incorrecte vers '>'. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*40 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*46 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*51 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*52 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*55 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*61 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*67 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*72 Syntaxe incorrecte vers ','. Msg*102, Niveau*15, État*1, Procédure*calcul_delai, Ligne*73 Syntaxe incorrecte vers ','.
Le code :
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO USE [GDAC] GO CREATE FUNCTION calcul_delai(@DHDebut DateTime, @Delai Int) RETURNS DateTime AS BEGIN -- Declare the return variable here DECLARE @DateFin DateTime SET @DateFin = @DHDebut DECLARE @HeureDebut TINYINT SET @HeureDebut = DATEPART(hour, @DHDebut) DECLARE @JourSuiv BIT -- Fonction -- Placement de l'horaire dans la journée SET @DateFin = CASE WHEN @HeureDebut < 9 THEN DATEADD(hour, -@HeureDebut+9, @DateFin) WHEN @HeureDebut > 12 AND @HeureDebut < 14 THEN DATEADD(hour, -@HeureDebut+14, @DateFin) END IF @HeureDebut > 18 BEGIN SET DATEADD(hour, -@HeureDebut+9, @DateFin) WHILE dbo.jour_suivant(@DateFin) = 0 BEGIN SET DATEADD(day, DATEPART(day,@DHDebut)+1, @DateFin); END SET DATEADD(day, DATEPART(day,@DHDebut)+1, @DateFin); END -- Calcul de la première journée si même jour que la demande IF DATEPART(hour, @DateFin) >= 9 AND DATEPART(hour, @DateFin) <= 12 BEGIN SET @Delai = @Delai - (12 - DATEPART(hour,@DateFin)) SET DATEADD(hour, -DATEPART(hour,@DateFin)+12, @DateFin) IF @Delai != 0 & @Delai >= 4 BEGIN SET @Delai = @Delai - (18 - DATEPART(hour,@DateFin)) SET DATEADD(hour, -DATEPART(hour,@DateFin)+18, @DateFin) END END ELSE IF DATEPART(hour, @DateFin) >= 14 AND DATEPART(hour, @DateFin) <= 19 BEGIN SET @Delai = (@Delai - (18 - DATEPART(hour,@DateFin))) SET DATEADD(hour, -DATEPART(hour,@DateFin)+18, @DateFin) END WHILE @Delai != 0 IF dbo.jour_suivant(@DateFin) = 1 SET DATEADD(day, DATEPART(day,@DateFin)+1, @DateFin) SET DATEADD(hour, -DATEPART(hour,@DateFin)+9, @DateFin) IF @Delai <= 3 BEGIN SET DATEADD(hour, @Delai, @DateFin) SET @Delai = 0; BREAK END ELSE IF @Delai <= 7 BEGIN SET DATEADD(hour, @Delai + 2, @DateFin) -- @Delai+2 pour la pause du midi SET @Delai = 0; BREAK END ELSE IF @Delai > 7 BEGIN SET DATEADD(hour, 9, @DateFin) -- 7h + 2h de pause SET @Delai = @Delai - 7 END ELSE IF dbo.jour_suivant(@DateFin) = 0 BEGIN SET DATEADD(day, DATEPART(day,@DateFin)+1, @DateFin) SET DATEADD(hour, -DATEPART(hour,@DateFin)+9, @DateFin) END -- Return the result of the function RETURN @DateFin END GO
MERCI !
Partager