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 :

Utilisation de l'instruction NOT IN dans l'instruction CASE WHEN


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut Utilisation de l'instruction NOT IN dans l'instruction CASE WHEN
    Bonjour, je suis nouveau sur le forum, j'ai fait des recherches sur internet mais je n'ai pas trouvé mon bonheur...

    Je développe une appli Web en php et SQL SERVER. L'application restitue sur le web des informations stockés dans une base SQL SERVER.
    ( j'ai quelques bases en programmation car j'ai fait une école d’ingénieur en mathématiques, mais je suis novice en web...)

    Je bloque sur une requête qui ne s’exécute pas:

    Le but est de récupérer des informations provenant de la table dbo.[06_C556] puis de récupérer dans un NOUVEL attribut ( qui s’appellera [EDS inst]) une variable, qui dépend de la valeur d'une partie des autres attributs:

    Voici le Code :
    Nom : requete.PNG
Affichages : 193
Taille : 38,0 Ko
    Nom : reponse.PNG
Affichages : 178
Taille : 1,9 Ko
    Autrement dit:

    [EDS inst] vaut:
    -[06_C556].[C556 - No Emetteur(rq7 C556)] SI : [06_C556].[C556 - No Emetteur(rq7 C556)] est différent de (7213,7223,6424,6423,6506,7194,0)
    SI NON:
    - [C558 - No Emetteur] SI: [C558 - No Emetteur] n'appartient pas à (7213,7223,6424,6423,6506,7194,0)
    SI NON:
    -[C558 - C560 - id agence productrice] SI: [C558 - C560 - id agence productrice] n'appartient pas à (7213,7223,6424,6423,6506,7194,0)
    SI NON :
    -[PA-id EDS niveau 4]

    J'ai trouvé sur le web qu'on pouvait gérer ça avec CASE, mais il existe différentes syntaxes, je suis à court d'idée...
    Quelqu’un sait-il comment gérer ça?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CASE 
       WHEN [06_C556].[C556 - No Emetteur(rq7 C556)] NOT IN (7213,7223,6424,6423,6506,7194,0)
          THEN -[06_C556].[C556 - No Emetteur(rq7 C556)]
       WHEN [C558 - No Emetteur] NOT IN (7213,7223,6424,6423,6506,7194,0)
          THEN -[06_C556].[C556 - No Emetteur(rq7 C556)]  
       WHEN [C558 - C560 - id agence productrice] NOT IN (7213,7223,6424,6423,6506,7194,0)
          THEN -[C558 - C560 - id agence productrice]
       ELSE -[PA-id EDS niveau 4]
    END
    Au passage, avoir des noms de colonnes non conforme à la norme ne peut que vous causer de multiples ennuis... Changez les en identifiants SQL :
    https://sqlpro.developpez.com/cours/...age=partie1#L1

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut
    Salut Frédéric,

    Merci d'avoir prit le temps de me répondre .

    C'est bien la syntaxe que j'ai utilisé, et pour autant elle ne fonctionne pas. C'est peut-être du à mon 'AS [EDS inst]' dans le code?

    Concernant les normes syntaxiques je n'ai pas la main dessus c'est l'entreprise qui crée tout ça, je suis bien d'accord c'est pénible et source d'erreur.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Quel est le message d'erreur ?

    Sachez que quand vous cliquez sur le message d'erreur, il vous met à peu près à la bonne ligne qu'il ne comprend pas dans la requête (souvent la ligne précédente

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Par défaut
    C'est bon ça marche merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/12/2010, 20h43
  2. Réponses: 16
    Dernier message: 26/03/2010, 11h04
  3. Utiliser la jointure dans l'instruction update
    Par younes86 dans le forum SQL
    Réponses: 11
    Dernier message: 22/01/2010, 15h56
  4. Réponses: 2
    Dernier message: 31/01/2008, 13h59

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