Salut,
J'ai une procédure stockée qui me génère l'erreur suivante malgré tout ce que j'essaie. Merci de m'aider
Pièce jointe 248290

Au fait lorsque dans je choisis une date qui comporte les informations dans la table Caisse_History, l'erreur ne s'affiche et tout se passe bien mais lorsque la date choisie n'a pas d'information dans la table, il m'affiche ladite erreur.

Voici la procédure Stockée

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
USE [SOROC]
GO
/****** Object:  StoredProcedure [COMPTABILITE].[FOND_DE_ROULEMENT_BY_SOCIETE]    Script Date: 25/02/2017 12:41:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
 
ALTER PROCEDURE [COMPTABILITE].[FOND_DE_ROULEMENT_BY_SOCIETE]
 
 
	 --@Dateop datetime,
	 --@Criterefam Varchar(75),
	 -- @CritereMak varchar(75),
	 -- @CritereCategorie varchar(75),
	 -- @CritereDepot varchar(75),
	   @CriVersionLogiciel varchar(100),
	  @CriPoste varchar(100),
	  @Id_Societe int,
	  @DateActivite datetime
AS
BEGIN
IF 1=0 BEGIN
    SET FMTONLY OFF
END
	SELECT  
	SOC.ID_AUTO
	, SOC.RAISOC
	, SOC.ACTIVITE
	, SOC.ADRESSE
	, SOC.SITEWEB
	, SOC.TELEPHONE
	, soc.MAIL
	, SOC.RC
	, SOC.IFU
 
	, cast(0 as decimal(25,0)) AS 'STOCK'
	, cast(0 as decimal(25,0)) AS 'CAISSE MENU DEPENSE'
	, cast(0 as decimal(25,0)) AS 'COFFRE FORT'
	, cast(0 as decimal(25,0)) AS 'CAISSE AGENCE'
	, cast(0 as decimal(25,0)) AS 'CAISSE E-MONEY'
	, cast(0 as decimal(25,0)) AS 'CAISSE CANAL+'
	, cast(0 as decimal(25,0)) AS 'BANQUE'
	, cast(0 as decimal(25,0)) AS 'CREANCES CLIENT'
	, cast(0 as decimal(25,0)) AS 'CAUTION CLIENT'
	, cast(0 as decimal(25,0)) AS 'MARGE BENEFICIAIRE'
	, cast(0 as decimal(25,0)) AS 'DETTES FOURNISSEUR'
	, cast(0 as decimal(25,0)) AS 'ENCOURS BANCAIRE'
 
 
 
 
  --, (Select @Criterefam) as Criterefam
  --, (Select @CritereMak) as CritereMak
  --, (Select @CritereCategorie) as CritereCategorie
  --, (Select @CritereDepot) as CritereDepot
  --, (Select @Dateop) as Dateop
  , (Select @CriVersionLogiciel) as CriVersionLogiciel
  , (Select @CriPoste) as CriPoste
 
	INTO #FONDROULEMENT
 
	FROM [MODELE].[SOCIETE] SOC
 
	WHERE SOC.ID_AUTO = @Id_Societe 
 
	UPDATE #FONDROULEMENT set STOCK =  [COMPTABILITE].[FN_FOND_ROULEMENT_VALEUR_STOCK]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
	UPDATE #FONDROULEMENT set [CAISSE MENU DEPENSE] =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_CAISSE_DEPENSES]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
	UPDATE #FONDROULEMENT set [COFFRE FORT] =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_COFFRE_FORT]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
	UPDATE #FONDROULEMENT set [CAISSE AGENCE] =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_CAISSES_AGENCE]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
 
 UPDATE #FONDROULEMENT set [CAISSE E-MONEY] =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_CAISSES_EMONEY]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
 UPDATE #FONDROULEMENT set [CAISSE CANAL+] =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_CAISSES_ABONNEMENT]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
 UPDATE #FONDROULEMENT set BANQUE =  [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_BANQUES]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
	 UPDATE #FONDROULEMENT set [CREANCES CLIENT] =  [COMPTABILITE].[FN_FOND_ROULEMENT_CREANCE_CLIENT]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
	 UPDATE #FONDROULEMENT set [CAUTION CLIENT] = 0
 
	  UPDATE #FONDROULEMENT set [MARGE BENEFICIAIRE] = 0
 
	   UPDATE #FONDROULEMENT set [DETTES FOURNISSEUR] =  [COMPTABILITE].[FN_FOND_ROULEMENT_CREANCE_FOURNISSEUR]
								  (#FONDROULEMENT.ID_AUTO,@DateActivite)
 
 
	  UPDATE #FONDROULEMENT set [ENCOURS BANCAIRE]=  0
 
 
	SELECT * FROM #FONDROULEMENT FR
 
	WHERE FR.ID_AUTO = @Id_Societe
 
 
 
	DROP table #FONDROULEMENT
END
Voici La Fonction dont la ligne génére l'erreur
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
USE [SOROC]
GO
/****** Object:  UserDefinedFunction [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_COFFRE_FORT]    Script Date: 25/02/2017 12:44:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
ALTER  FUNCTION [COMPTABILITE].[FN_FOND_ROULEMENT_SOLDE_DES_COFFRE_FORT]
(
 @id_Societe int,
 @dateActivity datetime2
)
RETURNS int
 
AS
 
BEGIN
declare @Solde_Caisse decimal(25,0)
 
 
SELECT @Solde_Caisse = 
	   MAX (F.LongestBreaks)  -- Dummy max() so that groupby can be used.
FROM
    (
        SELECT 
            C.ID_CAISSE, 
            (
                SELECT 
                    COALESCE (SUM (S.ECRITURE_SOLDE), 0)    
                FROM 
                    (
                        SELECT TOP 1   T.ECRITURE_SOLDE
                        FROM            COMPTABILITE.CAISSE_HISTORY T
						iNNER JOIN [MODELE].[CAISSE] CA
						ON [T].[ID_CAISSE] = [CA].[ID_AUTO]
						iNNER JOIN [MODELE].[AGENCE] AG
						ON [CA].[ID_AGENCE] = [AG].[ID_AUTO]
 
                        WHERE           T.ID_CAISSE  = C.ID_CAISSE 
                        AND convert(date,[T].[DATEOP]) <= @dateActivity
						AND [AG].[ID_SOCIETE] = @id_Societe
							AND [CA].[TYPE_CAISSE] = 'Caisse Principale'
 
 
                        ORDER BY        T.ECRITURE_SOLDE  DESC
                    ) AS S
             ) AS LongestBreaks
        FROM
            COMPTABILITE.CAISSE_HISTORY C 
    ) AS F
 
 
--	--Permet de choisir la dernière date d'information dans la base 
 
	if(@Solde_Caisse is null)
	begin
		SELECT @Solde_Caisse = 
		   MAX (F.LongestBreaks)  -- Dummy max() so that groupby can be used.
FROM
    (
        SELECT 
            C.ID_CAISSE, 
            (
                SELECT 
                    COALESCE (SUM (S.ECRITURE_SOLDE), 0)    
                FROM 
                    (
                        SELECT TOP 1   T.ECRITURE_SOLDE
                        FROM            COMPTABILITE.CAISSE_HISTORY T
						iNNER JOIN [MODELE].[CAISSE] CA
						ON [T].[ID_CAISSE] = [CA].[ID_AUTO]
						iNNER JOIN [MODELE].[AGENCE] AG
						ON [CA].[ID_AGENCE] = [AG].[ID_AUTO]
                        WHERE           T.ID_CAISSE  = C.ID_CAISSE 
                        AND convert(date,[T].[DATEOP]) <= (Select Max(DATEOP) FROM [COMPTABILITE].[CAISSE_HISTORY]  WHERE convert(date,DATEOP) <= @dateActivity )
						AND [AG].[ID_SOCIETE] = @id_Societe
							AND [CA].[TYPE_CAISSE] = 'Caisse Principale'
 
                        ORDER BY        T.ECRITURE_SOLDE  DESC
                    ) AS S
             ) AS LongestBreaks
        FROM
            COMPTABILITE.CAISSE_HISTORY C 
    ) AS F
 
	END
	 --Permet de mettre un montant non trouvé à  0
 
	if(@Solde_Caisse is null)
	begin
		set @Solde_Caisse =  0
	end
 
	return @Solde_Caisse
END

Merci de m'aider