Bonjour, j'ai besoin d'aide pour la création d'une requête d'une procédure stockée.
Voici la requête actuelle (je zappe les infos inutiles pour faire + claire) :
La requête renvoie 3 réponses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select Id_Action, ..., Débit, Crédit, '0' As Total from Actions where ... order by Id_Action ASC
- Débit = 0; Crédit = 50; Total = 0
- Débit = 0; Crédit = 25; Total = 0
- Débit = 75; Crédit = 0; Total = 0
J'aimerais qu'elle renvoie :
- Débit = 0; Crédit = 50; Total = 50
- Débit = 0; Crédit = 25; Total = 75
- Débit = 75; Crédit = 0; Total = 0
En gros : Total(LigneX) = Total(LigneX - 1) + Crédit - Débit
Avec Total(LigneX - 1) = 0 quand LigneX - 1 existe pas
J'ai essayé avec un curseur :
Mais je ne sais pas encore utilisé les curseurs, je ne sais pas comment modifier les valeurs du curseurs et comment faire pour que la procédure stockée renvoie le select modifier.
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 ALTER PROCEDURE [dbo].[Action_Select_All] AS BEGIN declare @Id_Action int declare @Débit real declare @Crédit real declare @Total real declare @A_Total real set @A_Total = 0 declare Curseur_Réponse cursor for select Id_Action, ..., Débit, Crédit, '0' As Total from Actions where ... order by Id_Action ASC open Curseur_Réponse if @@Cursor_Rows != 0 begin --première ligne fetch Curseur_Réponse into @Id_Action, ..., @Débit, @Crédit, @Total set @Total = @A_Total + @Crédit - @Débit --set Curseur_Réponse.Total = @Total set @A_Total = @Total while @@fetch_status = 0 begin fetch Curseur_Réponse into @Id_Action, ..., @Débit, @Crédit, @Total set @Total = @A_Total + @Crédit - @Débit --set Curseur_Réponse.Total = @Total set @A_Total = @Total fetch Curseur_Réponse into @Id_Action, ..., @Débit, @Crédit, @Total end end close Curseur_Réponse deallocate Curseur_Réponse END
Merci d'avance
Partager