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
Partager