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 :

Aide sur 'simplification, construction' de requête [2008R2]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut Aide sur 'simplification, construction' de requête
    Bonjour tout le monde,

    Cela fait longtemps que je n'étais pas venu. Mais j'ai besoin d'un peu d'aides.

    Je m'excuse d'entrée si vous trouvez ça trop simple, mais je n'arrive pas à trouver ma réponse


    Bref, je cherche à effectué une extraction de dossier clients sur une base. Tous les dossiers qui commencent pas 4, 5 ou 5 et qui comportent au minimum 6 caractères.

    J'ai donc effectué une première requête pour la taille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from dbo.PC_Clients
    where LEN (cli_dossier_id) >='6'
    Elle fonctionne et me ressort bien ce que j'attends (en partie car je ne veux que les 4,5,6).


    J'ai testé une seconde requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from dbo.PC_Clients
    where cli_Dossier_id like '6%'
    or cli_Dossier_id like '5%'
    or cli_Dossier_id like '4%'
    Et j'obtiens bien les dossiers qui commencent par 4, 5 et 6.

    Mais je suis incapable de "mixer" l'ensemble des conditions.

    Un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * from dbo.PC_Clients
    where cli_Dossier_id like '6%'
    or cli_Dossier_id like '5%'
    or cli_Dossier_id like '4%'
    and LEN (cli_dossier_id) >='6'
    Cette requête retourne bien un résultat, en l’occurrence les dossiers qui commencent par 4, 5 et 6 mais également les numéros de dossiers de moins de 6 caractères.
    En fait ma condition sur la taille n'est pas prise en compte.

    J'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from dbo.PC_Clients
    where cli_Dossier_id in ('6%', '5%', '4%')
    and LEN (cli_dossier_id) >='6'
    Mais la rien ne fonctionne.

    Bref, je vois pas comment m'en sortir là, si une âme charitable est de passage !


    Merci par avance

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonjour,

    Essayez quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * 
    from dbo.PC_Clients
    where LEFT(cli_Dossier_id, 1) IN ('4', '5', '6')
      and LEN(cli_Dossier_id) > 5;

    LEFT (Transact-SQL)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Merci

    J'allais posté une requête que je viens de testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * from dbo.PC_Clients
    where  LEN (cli_dossier_id) >='6'
    and (cli_Dossier_id like '6%'
    or cli_Dossier_id like '5%'
    or cli_Dossier_id like '4%')
    Mais la votre me retourne le même nombre de lignes et est plus simple !

    Il me reste qu'a valider le résultat.

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

Discussions similaires

  1. Aide sur une demande de requête au niveau de SQL Server
    Par Msysteme dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/04/2013, 23h01
  2. aide sur écriture d'une requète
    Par awalter1 dans le forum SQL
    Réponses: 3
    Dernier message: 23/11/2010, 14h28
  3. [AC-2003] difficulté sur la construction des requète sql
    Par papillon2010 dans le forum Access
    Réponses: 1
    Dernier message: 15/07/2010, 09h27
  4. Aide sur la construction optimale d'une application
    Par n8ken dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 02/04/2008, 14h33
  5. Aide sur la construction d'une ellipse
    Par tchikobraille dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/08/2007, 11h45

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