CREATE PROCEDURE Mvt_personnel
AS
SET NOCOUNT ON
declare @NSS varchar(50)
Declare @Mois integer
DECLARE @Jour integer
Declare @Nom_Prenom varchar(50)
Declare @adresse varchar(20)
declare @Date_Debut_Contrat datetime
declare @Date_Fin_Contrat datetime
declare @rubrique int
declare @maxmois integer
declare @Service varchar(50)
declare @maxexercice integer
declare @fonction varchar(50)
declare @Exercice int
declare @compt int
declare @MoisC int
Declare TX Cursor For
SELECT dim_Salaire.NSS,dim_Salaire.Nom_Prenom,dim_Salaire.Adresse--,id_ligne
, dim_Salaire.Service,Fonction, dim_Salaire.Date_Debut_Contrat,dim_Salaire.Date_Fin_Contrat,dim_Salaire.Jour,dim_Salaire.Mois,id_rubrique,Exercice
from dim_Salaire
where Exercice =2007 and id_rubrique='1' --and NSS=@NSS
OPEN TX
FETCH NEXT FROM TX INTO @NSS,@Nom_Prenom,@adresse,@Service,
@fonction, @Date_Debut_Contrat,@Date_Fin_Contrat,@Jour
,@Mois,@rubrique,@Exercice--,@row
WHILE @@FETCH_STATUS = 0
BEGIN
select @maxmois= (SELECT Max( Mois)
FROM dim_Salaire
where Exercice=2007 and id_rubrique='1' and NSS=@NSS
)
if(@maxmois <12)
begin
Insert into dim_mvt_personnel(NSS,Nom_Prenom,Adresse,Service,Fonction,
Date_Debut_Contrat,Date_Fin_Contrat,Mois,Jour,Exercice,id_rubrique)
values(@NSS,@Nom_Prenom,@adresse,@Service,@fonction,@Date_Debut_Contrat,
@Date_Fin_Contrat,@Mois,@Jour,@Exercice,@rubrique)
end
FETCH NEXT FROM TX INTO @NSS,@Nom_Prenom,@adresse,@Service,@fonction, @Date_Debut_Contrat,@Date_Fin_Contrat,@Jour
, @Mois,@rubrique,@Exercice
end
CLOSE TX
DEALLOCATE TX
GO
voilà j'ai une table dim_salaire et une table mvt_personnel:
j'ai eu un probléme, et j'aime bien insérer que les salariés qui n'ont pas passé le 12 éme de mois malgré que, le cas et que les salarié se répéte pour chaque mois où il y a versement du salaire,donc il me faut avoir le max mois
Partager