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 :

Remplacer un Case dans une View


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut Remplacer un Case dans une View
    Bonjour,

    Voila mon probléme: J'ai mis un CASE dans une VIEW apparemment SQL server 2000 aime pas trop ça car ce case provoque une alerte (Query designer does not support the case SQL construct) malgré cette alerte la View me renvois les résultats demandé mais je ne peut pas sauvegardé mon code après l'avoir lancé (mais avant oui ^^)

    Ma question: y a t il une alternative au CASE? et en quoi l'alerte est dérangeante

    voila mon case:
    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
    BKG_Quantity = CASE 
     
    					WHEN BKG_Loading_Type = 1 THEN '100' 
    					WHEN BKG_Loading_Type = 2 THEN '116' 
    					WHEN BKG_Loading_Type = 3 THEN '152' 
    					WHEN BKG_Loading_Type = 4 THEN '76' 
    					WHEN BKG_Loading_Type = 5 THEN '76' 
    					WHEN BKG_Loading_Type = 6 THEN '106' 
    					WHEN BKG_Loading_Type = 7 THEN '120' 
    					WHEN BKG_Loading_Type = 8 THEN '100' 
    					WHEN BKG_Loading_Type = 9 THEN '84' 
    					WHEN BKG_Loading_Type = 10 THEN '78' 
    					WHEN BKG_Loading_Type = 11 THEN '68' 
    					WHEN BKG_Loading_Type = 12 THEN '152' 
    					WHEN BKG_Loading_Type = 13 THEN '120' 
    					WHEN BKG_Loading_Type = 14 THEN '60' 
    					WHEN BKG_Loading_Type = 15 THEN '74' 
    					WHEN BKG_Loading_Type = 21 THEN '128' 
    					WHEN BKG_Loading_Type = 22 THEN '116' 
    					WHEN BKG_Loading_Type = 23 THEN '140' 
    					WHEN BKG_Loading_Type = 24 THEN '104' 
    					WHEN BKG_Loading_Type = 99 THEN '180' 
    					ELSE 'NA'
     
    				     END
    Merci d'avance

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    quel outil utilisez vous pour créer votre vue ? SQL Server Enterprise Manager?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il faudrait que tu donnes tout le code de ta vue parce ton BKG_Quantity = CASE est bizarre je trouve !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Oui j'utilise entreprise manager.
    Voila mon code complet pour cette View. Soyez indulgent je débute

    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
    51
    52
    53
    54
    55
    56
    SELECT     
    	TOP 1000 
     
    		'J' 
    		+ RIGHT(CAST(dbo.PROD_RUN_BKG.BKG_Run_Year AS varchar(4)), 2) 
    		+ RIGHT('0000' + CAST(dbo.PROD_RUN_BKG.BKG_Run_Number AS varchar(4)),4) 
    		AS BKG_RUN_Number, 
     
    		        'Not Available' AS BKG_GroupNumber, 
    		        'Not Available' AS BKG_Work_Order, 
    			'Not Available' AS BKG_Part_Number, 
                            dbo.PROD_Forming_Lot.Coke_Type, 
    			dbo.PROD_Forming_Lot.Nominal_Length, 
    			dbo.PROD_Forming_Lot.Nominal_Diameter, 
                            dbo.PROD_RUN_BKG.BKG_Loading_Type, 
     
                          BKG_Quantity = CASE 
     
    					WHEN BKG_Loading_Type = 1 THEN '100' 
    					WHEN BKG_Loading_Type = 2 THEN '116' 
    					WHEN BKG_Loading_Type = 3 THEN '152' 
    					WHEN BKG_Loading_Type = 4 THEN '76' 
    					WHEN BKG_Loading_Type = 5 THEN '76' 
    					WHEN BKG_Loading_Type = 6 THEN '106' 
    					WHEN BKG_Loading_Type = 7 THEN '120' 
    					WHEN BKG_Loading_Type = 8 THEN '100' 
    					WHEN BKG_Loading_Type = 9 THEN '84' 
    					WHEN BKG_Loading_Type = 10 THEN '78' 
    					WHEN BKG_Loading_Type = 11 THEN '68' 
    					WHEN BKG_Loading_Type = 12 THEN '152' 
    					WHEN BKG_Loading_Type = 13 THEN '120' 
    					WHEN BKG_Loading_Type = 14 THEN '60' 
    					WHEN BKG_Loading_Type = 15 THEN '74' 
    					WHEN BKG_Loading_Type = 21 THEN '128' 
    					WHEN BKG_Loading_Type = 22 THEN '116' 
    					WHEN BKG_Loading_Type = 23 THEN '140' 
    					WHEN BKG_Loading_Type = 24 THEN '104' 
    					WHEN BKG_Loading_Type = 99 THEN '180' 
    					ELSE 'NA'
     
    				     END
     
    FROM            
    		dbo.PROD_Electrode_BKG 
    		INNER JOIN dbo.PROD_RUN_BKG 
    		ON dbo.PROD_Electrode_BKG.BKG_Number = dbo.PROD_RUN_BKG.BKG_Number 
    		AND dbo.PROD_Electrode_BKG.BKG_Run_Number = dbo.PROD_RUN_BKG.BKG_Run_Number 
    		AND dbo.PROD_Electrode_BKG.BKG_Run_Year = dbo.PROD_RUN_BKG.BKG_Run_Year 
     
    		INNER JOIN dbo.PROD_Electrode 
    		ON dbo.PROD_Electrode_BKG.FO_Number = dbo.PROD_Electrode.FO_Number 
     
    		INNER JOIN dbo.PROD_Forming_Lot 
    		ON dbo.PROD_Electrode.Forming_Lot = dbo.PROD_Forming_Lot.Forming_Lot 
    		AND dbo.PROD_Electrode.Nominal_Diameter = dbo.PROD_Forming_Lot.Nominal_Diameter 
    		AND dbo.PROD_Electrode.Nominal_Length = dbo.PROD_Forming_Lot.Nominal_Length
    @CinePhil: j'ai fait comme sur MSDN http://msdn.microsoft.com/fr-fr/library/ms181765.aspx

  5. #5
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Essayez de créer votre vue dans Query Analyzer ... Histoire de voir

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Oui je l'ai déjà fait c'est comme ça que je l'ai créé il me dit que tout est ok mais quand je l'ouvre avec clic droit design vue je ne vois pas les tables et les liaisons que j'ai indiqué et si je modifie le code directement dans cette interface il m'annonce une erreur et je ne peut plus sauvegarder.

    Je sais pas si c'est clair

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    OK c'est bien ce que je pensais, ton CASE est dans le SELECT.
    La syntaxe normale est alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CASE
      WHEN condition THEN valeur
    END AS alias
    Tu devrais donc plutôt écrire :
    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
    CASE 
        WHEN BKG_Loading_Type = 1 THEN '100' 
        WHEN BKG_Loading_Type = 2 THEN '116' 
        WHEN BKG_Loading_Type = 3 THEN '152' 
        WHEN BKG_Loading_Type = 4 THEN '76' 
        WHEN BKG_Loading_Type = 5 THEN '76' 
        WHEN BKG_Loading_Type = 6 THEN '106' 
        WHEN BKG_Loading_Type = 7 THEN '120' 
        WHEN BKG_Loading_Type = 8 THEN '100' 
        WHEN BKG_Loading_Type = 9 THEN '84' 
        WHEN BKG_Loading_Type = 10 THEN '78' 
        WHEN BKG_Loading_Type = 11 THEN '68' 
        WHEN BKG_Loading_Type = 12 THEN '152' 
        WHEN BKG_Loading_Type = 13 THEN '120' 
        WHEN BKG_Loading_Type = 14 THEN '60' 
        WHEN BKG_Loading_Type = 15 THEN '74' 
        WHEN BKG_Loading_Type = 21 THEN '128' 
        WHEN BKG_Loading_Type = 22 THEN '116' 
        WHEN BKG_Loading_Type = 23 THEN '140' 
        WHEN BKG_Loading_Type = 24 THEN '104' 
        WHEN BKG_Loading_Type = 99 THEN '180' 
        ELSE 'NA'
    END AS BKG_Quantity
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    J'ai déjà essayer c'est d'ailleurs par ça que j'avais commencé avant d'aller sur MSDN ça fait exactement la même chose

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Remplacement de caracteres dans une ligne
    Par tibyann dans le forum Linux
    Réponses: 10
    Dernier message: 14/02/2006, 12h12
  3. Voisinage de "cases" dans une liste
    Par progfou dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 18/01/2006, 08h43
  4. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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