Bonjour le forum j'ai cette procedure stocké
mon objectif étant d'avoir la somme cumulé des salaires de chaque employé lorsque j'imprime les bulletins de paie des employés chaque mois,
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 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[SP_BULLETINPAIE] ( @Date_Debut Date, @Date_Fin Date, @Nom nvarchar(250) ) as SELECT E.[EM_ID],S.[Numero],[Matricule],E.[EM_Nom],E.[EM_Prenom],E.[EM_SECURITE_SOCIAL],E.[EM_CATEGORIE_EMPLOI],S.[SA_ID],S.[LIBELLE],T.[ST_NOM],E.[EM_CATEGORIE],E.[EM_ECHELON],[Date_Debut],[Date_Fin],[MONTANT], sum ( case when s.sa_id=1 or s.sa_id=2 or s.sa_id=3 or s.sa_id=4 then MONTANT else null end ) OVER(PARTITION BY E.EM_ID ORDER BY Date_Debut) as Somme_Cumulée from SALAIRE S INNER JOIN Employees E ON S.EM_ID=E.EM_ID INNER JOIN STATION T ON T.ST_ID=S.ST_ID INNER JOIN [ELEMENTSALAIRES] L ON L.SA_ID=L.SA_ID WHERE [Matricule]!='' and [Date_Debut]=@Date_Debut and [Date_Fin]=@Date_Fin and E.[EM_Nom]=@Nom group by E.[EM_ID],S.[Numero],[Matricule],E.[EM_Nom],E.[EM_Prenom],E.[EM_SECURITE_SOCIAL],E.[EM_CATEGORIE_EMPLOI],S.[SA_ID],S.[LIBELLE],T.[ST_NOM],E.[EM_ECHELON],[Date_Debut],[Date_Fin],[MONTANT],E.[EM_CATEGORIE] GO
à partir du champ Somme_Cumulée, lorsque je fait la sélection par employer la sa ne marche plus et pour essayer de corriger le problème,j'ai créé
une vue
et lorsque je fait cette requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 create VIEW [dbo].[VBULLETINSSSS] AS SELECT E.[EM_ID], sum ( case when s.sa_id=1 or s.sa_id=2 or s.sa_id=3 or s.sa_id=4 then MONTANT else null end ) OVER(PARTITION BY E.EM_ID ORDER BY month(Date_Debut)) as Somme_filtree from SALAIRE S INNER JOIN Employees E ON S.EM_ID=E.EM_ID INNER JOIN STATION T ON T.ST_ID=S.ST_ID INNER JOIN [ELEMENTSALAIRES] L ON L.SA_ID=S.SA_ID group by E.[EM_ID],[MONTANT],S.SA_ID,month(Date_Debut) GO
j’obtiens trop de doublon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT month(Date_Debut),s.[EM_ID],S.[SA_ID],S.[LIBELLE],[Date_Debut],[Date_Fin],[MONTANT], [Somme_filtree] from SALAIRE S JOIN [VBULLETINSSSS] V ON S.EM_ID=V.EM_ID group by month(Date_Debut),s.[EM_ID],S.[SA_ID],S.[LIBELLE],[Date_Debut],[Date_Fin],[MONTANT],[Somme_filtree] ORDER BY s.[EM_ID] ASC
comment faire pour corrigé se problème
Partager