J'ai crée une fonction qui me retourne l'heure en donnant en paramètre la date du jour et le matricule , elle marche bien sauf que s'il n y a pas d'enregistrement dans cette date il me retourne une erreur .


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Msg 537, Niveau 16, État 5, Ligne 1
Paramètre de longueur non valide passé à la fonction LEFT ou SUBSTRING.

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
 
CREATE FUNCTION [dbo].[getAffiche]
	(
		@dateCalendrier varchar(15),
		@matr varchar(15)
					)
RETURNS varchar(50)
AS
BEGIN
 
DECLARE @ProductNames VARCHAR(max)
DECLARE @Date varchar(50)
DECLARE @Type as varchar(2) 
 
 SET @ProductNames = '' 
SET @Date = ''
SET @Type =''
 
 
SELECT @ProductNames = ISNULL(@ProductNames,'')+ CAST(HEURE_POINTAGE AS VARCHAR(5)) + '-' 
,@Date=DATE_CALENDRIER
,@Type=(CASE WHEN TYPE_='1' THEN 'E :' ELSE 'S :' END)
  FROM WS_Clocking 
  WHERE DATE_CALENDRIER=@dateCalendrier
  AND MATR=@matr
SET @ProductNames = SUBSTRING(@ProductNames, 1, LEN(@ProductNames)-1) 
 
 	RETURN @ProductNames
END

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT dbo.getAffiche('2012-09-16','26')