Bonjour,
Voici un exercice dont je n'ai pas trouvé solution (je n'ai peut-être pas bien formulé mes recherches).
Nous avons une table contenant plusieurs listes de chiffres (séquences) consécutifs.
exemple.
liste 1 : (NUMDEBUT) 150001 à (NUMFIN)150500
liste 2 : (NUMDEBUT) 230001 à (NUMFIN) 230500
liste 3 : (NUMDEBUT) 110001 à (NUMFIN) 110700
Comment faire une liste de nombres commençant par le plus petit (110001) et se terminant par le plus grand (230500)
La liste des chiffres doit être triée du plus petit au plus grand.
Donc une première séquence de 110001 à 1107000 suivie de 150001 à 150500 puis de 230001 à 230500
j'ai utilsé le trigger ci-dessous pour insérer une liste (UNE SEQUENCE) dans la table DETDISTRIBUTION, maintenant il me faut inserer non pas une liste mais trois triées par ordre de grandeur.
D'avance merci.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 USE [AFC00] GO /****** Object: StoredProcedure [dbo].[sequenceur] Script Date: 14/12/2017 22:45:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: LUCIEN KANYEMBO -- Create date: 13/10/2013 -- Description: insere les num des tickets -- ============================================= ALTER PROCEDURE [dbo].[sequenceur] -- Add the parameters for the stored procedure here @NUMDEBUT BIGINT , @NUMFIN BIGINT, @IDLIEU INT, @IDAGENT INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @DATA int SET @DATA = (SELECT count(*) FROM DETDISTRIBUTION D WHERE D.NUMTICKET = @NUMDEBUT ) IF @DATA = 0 -- @data=0 si il nya pas ce numéro de ticket dans la table -- Insert statements for procedure here WITH cteSequence ( numero_sequence) as ( SELECT @NUMDEBUT UNION ALL SELECT numero_sequence + 1 FROM cteSequence WHERE numero_sequence < @NUMFIN ) INSERT INTO DETDISTRIBUTION ([NUMTICKET] ,[IDAGENT], [IDLIEU] ) SELECT numero_sequence,@IDAGENT, @IDLIEU FROM cteSequence OPTION ( MAXRECURSION 0); END
Lucien K
Partager