J'ai consulté l'article ci-dessous de SQLpro.
https://blog.developpez.com/sqlpro/p...gnes_a_increma
qui se rapproche de mon mon problème.
J'ai trois tables.
La table LABO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE [dbo].[LABO]( [IDLABO] [int] IDENTITY(1,1) NOT NULL, [LABO_CODE] [char](3) NULL, [LABO_NAME] [nvarchar](50) NULL, CONSTRAINT [PK_LABO] PRIMARY KEY CLUSTERED ( [IDLABO] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GOLa table RECEPTION
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO [dbo].[LABO] ([LABO_CODE],[LABO_NAME]) VALUES ('LKS' ,'LIKASI'),('KLZ' ,'KOLWEZI'),('LHI' ,'LUBUMBASHI')
et la table échantillon
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 CREATE TABLE [dbo].[RECEPTION]( [ID] [int] IDENTITY(1,1) NOT NULL, [DATE_REC] [datetime] NOT NULL, [IDLABO] [int] NULL, CONSTRAINT [PK_RECEPTION] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[RECEPTION] WITH CHECK ADD CONSTRAINT [FK_RECEPTION_LABO] FOREIGN KEY([IDLABO]) REFERENCES [dbo].[LABO] ([IDLABO]) GO ALTER TABLE [dbo].[RECEPTION] CHECK CONSTRAINT [FK_RECEPTION_LABO] GO
Je souhaite attribuer des numéros (NUMLABO) formatés à chaque échantillon inséré avec un formulaire (master [RECEPTION]-détails [ECHANTILLON]) sachant que:
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 CREATE TABLE [dbo].[ECHANTILLON]( [ID] [int] IDENTITY(1,1) NOT NULL, [IDRECEPTION] [int] NULL, [NUMLABO] [nvarchar](50) NULL, [POIDS_ECHANTILLON] [float] NULL, CONSTRAINT [PK_EHCANTILLON] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[ECHANTILLON] WITH CHECK ADD CONSTRAINT [FK_ECHANTILLON_RECEPTION] FOREIGN KEY([IDRECEPTION]) REFERENCES [dbo].[RECEPTION] ([ID]) GO ALTER TABLE [dbo].[ECHANTILLON] CHECK CONSTRAINT [FK_ECHANTILLON_RECEPTION] GO
1. le format des numéros est LKS-2017000001 (LKS-2017000001 sera le premier échantillon de l'année 2017 pour le labo dont le code est LKS avec le -)
2. La rupture s'effectue sur le code labo et l'année (KLZ-2017000001 sera la premier du labo KLZ pour 2017 et LKZ-2018000001 pour 2018)
3.L'année à considérer dans le numéro vient du CHAMPS [DATE_REC] de la table RECEPTION.
D'avance merci.
Partager