Bonjour à tous,

J'ai un petit souci avec un case...when dans un procédure stockée.

La procédure en elle-même fonctionne très bien. Je souhaite juste ajouté le case pour avoir une description en adéquation avec la langue du magasin concerné (variable @store).

Ce que je trouve étrange, c'est qu'il accepte DscrBi mais pas les autres.

Auriez-vous une idée de ce qui cause cela ?

Voici le code de ladite procédure :
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
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 
alter Procedure [dbo].[upVouGetVoucherPerStore_Sel]
		@store char(3),
		@dateStart datetime,
		@dateEnd datetime,
		@barcode char(13)
as
select
		VOU.EalvouBarcode as 'Barcode',
		'Description' =
		case 
			when @store in ('017', '042', '056') then PRO.DscrFr
			when @store in ('009', '026', '029', '050') then PRO.DscrBi
			else PRO.DscrNl
		end,
		VOU.EalvouDatetime as 'Date',
		sum(VOU.EalvouQuantity) as 'Quantity',
		sum(cast(VOU.EalvouPromoAmount as float))/100 as 'Total_Amount'
from
		tickets.dbo.tblVouEalvou VOU
			inner join (
						select distinct dscrbi, voucher, date_start, date_end
						from giftcard.dbo.promotion
						)  PRO
				on VOU.EalvouBarcode = PRO.Voucher
where
		VOU.StoreId = @store
	and VOU.EalvouDatetime between @dateStart and @dateEnd
	and VOU.EalvouEmitOrUse = 'U'
	and PRO.date_start <= @dateStart
	and PRO.date_end >= @datestart
group by
		VOU.EalvouBarcode,
		VOU.EalvouDatetime
order by
		VOU.EalvouBarcode,
		VOU.EalvouDatetime
Le message d'erreur :
Msg 207, Level 16, State 1, Procedure upVouGetVoucherPerStore_Sel, Line 15
Invalid column name 'DscrFr'.
Msg 207, Level 16, State 1, Procedure upVouGetVoucherPerStore_Sel, Line 17
Invalid column name 'DscrNl'.
Et la définition de la table qui pose problème :
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
USE [GIFTCARD]
GO
/****** Object:  Table [dbo].[Promotion]    Script Date: 03/12/2012 14:42:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Promotion](
	[SeqNrPromo] [int] IDENTITY(1,1) NOT NULL,
	[Active] [bit] NOT NULL CONSTRAINT [DF__Promotion__Activ__239E4DCF]  DEFAULT ((1)),
	[Promo_Nr] [int] NOT NULL,
	[Date_Start] [datetime] NOT NULL,
	[Date_End] [datetime] NOT NULL,
	[Req_Typ] [varchar](1) COLLATE Latin1_General_CI_AS NOT NULL,
	[Required] [decimal](9, 2) NOT NULL,
	[Adv_Typ] [varchar](8) COLLATE Latin1_General_CI_AS NOT NULL,
	[Advantage] [decimal](9, 2) NOT NULL,
	[Triggers] [varchar](16) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Trigg__24927208]  DEFAULT (''),
	[Voucher] [varchar](13) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Vouch__25869641]  DEFAULT (''),
	[Acct_Typ] [varchar](1) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Acct___267ABA7A]  DEFAULT ('D'),
	[Grp1_Typ] [varchar](1) COLLATE Latin1_General_CI_AS NOT NULL,
	[Group_1] [varchar](128) COLLATE Latin1_General_CI_AS NOT NULL,
	[Grp2_Typ] [varchar](1) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Grp2___276EDEB3]  DEFAULT (''),
	[Group_2] [varchar](128) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Group__286302EC]  DEFAULT (''),
	[DscrBi] [varchar](18) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__DscrB__29572725]  DEFAULT (''),
	[DscrFr] [varchar](18) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__DscrF__2A4B4B5E]  DEFAULT (''),
	[DscrNl] [varchar](18) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__DscrN__2B3F6F97]  DEFAULT (''),
	[HH_Start] [varchar](4) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__HH_St__2C3393D0]  DEFAULT ('0000'),
	[HH_End] [varchar](4) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__HH_En__2D27B809]  DEFAULT ('0000'),
	[Stores] [varchar](128) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Store__2E1BDC42]  DEFAULT ('ALL'),
	[Comment] [varchar](256) COLLATE Latin1_General_CI_AS NOT NULL CONSTRAINT [DF__Promotion__Comme__2F10007B]  DEFAULT (''),
	[VoucherTextNl] [varchar](512) COLLATE Latin1_General_CI_AS NULL,
	[VoucherTextFr] [varchar](512) COLLATE Latin1_General_CI_AS NULL,
 CONSTRAINT [UQ__Promotion__22AA2996] UNIQUE NONCLUSTERED 
(
	[Promo_Nr] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
Merci d'avance,

Griftou.