IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

[SQL SRV 2005] problème de case..when --> invalid column name


Sujet :

Développement SQL Server

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut [SQL SRV 2005] problème de case..when --> invalid column name
    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.
    Kropernic

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ca marche tout de suite mieux s j'ajoute les 2 champs en question dans la sous-requête...

    Désolé du dérangement... La grippe n'aide pas à y voir clair...

    Griftou.
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL SERVER 2005] INSERT avec CASE WHEN
    Par djilos dans le forum Développement
    Réponses: 5
    Dernier message: 16/04/2010, 14h46
  2. [SQL Server 2005] Problème de génération de requêtes.
    Par just1980 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2006, 18h44
  3. [SQL server 2005] Problème rolap et hierechie parent-child
    Par Thom_ dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/03/2006, 13h46
  4. [Migration] Oracle vers SQL Server 2005 - Problème de BLOB
    Par thomasrenault dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/02/2006, 10h26
  5. [SQL Server 2005] Problème d'instalation
    Par frechy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/11/2005, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo