Bonjour,

Etant débutant, je me permets de vous solliciter et vous demander conseil car je n'arrive pas a effectuer un total suite à une requete que j'ai faite. Cette requete execute un "Scalar Valued Function" qui énumère dans une table "Salarie" les personnes qui une ancienneté de travail de plus de 10 ans en fonction de l'année civile qu'on précise. Voci la fonction et le résultat ci-dessous.

Seulement voilà je n'arrive pas à faire le calcul pour avoir le total, pouvez-vous me conseiller svp

En vous remerciant par avance

BaV

Code SQL : 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
 
USE [SYGECO2]
GO
/****** Object:  UserDefinedFunction [dbo].[SalarieAnciennetePlus10]    Script Date: 9/1/2022 12:40:24 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[SalarieAnciennetePlus10]
(
	@IdSalarie char(36),
	@AnneeCivile int
)
returns bit
as
begin
	-- ************************************************************************************************************
	-- Indique si un salarié a un ancieneté > 10 ans
	--
	-- Usage:
	--
	-- select Nom, Prenom, DateEntree, Diplome, dbo.SalarieAnciennetePlus10(IdSalarie, 2021) as [Salarié anciennete plus de 10 ans] from Salarie
	-- ************************************************************************************************************
	declare @RetValue as bit = 0
	declare @anciennete as int
	declare @diplome as bit	
 
	select 
		@anciennete = datediff(yy,DateEntree,datefromparts(@AnneeCivile, 1, 1)),
		@diplome = Diplome				
	from 
		Salarie 
	where 
		IdSalarie = @IdSalarie
 
	if @anciennete>10
 
	begin
		set @retValue = 1 -- Salarié  sans qualification ou ancienneté > 10 ans
	end
 
	return @retValue	   
 
end
-------------------------------------------------

Nom : sql.JPG
Affichages : 176
Taille : 33,7 Ko