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

Requêtes et SQL. Discussion :

Requête avec If et mot commençant par [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 56
    Points : 48
    Points
    48
    Par défaut Requête avec If et mot commençant par
    Bonsoir,

    J'utilise un If dans une requête SQL car je dois regrouper des catégories de demandes dans d'autres catégories de demandes encore. Le problème est que mon If ne marche pas. Je pense que cela vient du fait que j'utilise le % pour prendre en compte seulement le début du texte... car j'ai déjà fait des requêtes avec If et cela marchait.

    Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT IIf(a.Demand_type='Windows and email account%','Windows and email account creation', IIf(a.Demand_type='Grant access internet standard%','Grant access internet standard', IIf(a.Demand_type='Install PC%', 'InstallPC', IIf(a.Demand_type='Internet Access%', 'Internet Access', IIf(a.Demand_type='Install Fixed Phone%', 'Install Fixed Phone', IIf(a.Demand_type='Install Fixed phone%', 'Install Fixed Phone',IIf(a.Demand_type='Internal transfer%', 'Internal transfer', IIf(a.Demand_type='Transfer outside%', 'Transfer outside', a.Demand_type)))))))) AS Demand_Type, format(Month([Demand_launch_date_valid]) & "/" & Year([Demand_launch_date_valid]),'mm/yyyy') AS [Month], Sum(a.Nb_demand) AS [Demand type / month]
    FROM Table_finale AS a
    WHERE (((a.[Department])="Customer Services")
    GROUP BY IIf(a.Demand_type='Windows and email account%','Windows and email account creation', IIf(a.Demand_type='Grant access internet standard%','Grant access internet standard', IIf(a.Demand_type='Install PC%', 'InstallPC', IIf(a.Demand_type='Internet Access%', 'Internet Access', IIf(a.Demand_type='Install Fixed Phone%', 'Install Fixed Phone', IIf(a.Demand_type='Install Fixed phone%', 'Install Fixed Phone',IIf(a.Demand_type='Internal transfer%', 'Internal transfer', IIf(a.Demand_type='Transfer outside%', 'Transfer outside', a.Demand_type)))))))), format(Month([Demand_launch_date_valid]) & "/" & Year([Demand_launch_date_valid]),'mm/yyyy')
    ORDER BY Sum(a.Nb_demand) DESC;
    Donc par exemple tous les types de demandes qui commencent par "Windows and email account" je veux les regrouper dans la catégorie "Windows and email account creation" mais ça ne marche pas. Mon If ne reconnait que la condition fausse.

    Dois-je en conclure que nous ne pouvons pas utiliser le % dans un If??

    Comment faire dans ce cas?

    Merci

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Car0le,

    Je serai surpris que nous ne puissions pas utiliser le % dans un If.

    Pour en être sûr, peux tu essayer ceci (version très simplifiée de ta requête) mais qui te permettra de valider cette supposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IIf(a.Demand_type='Windows and email account%','Windows and email account creation',IIf(a.Demand_type='Grant access internet standard%','Grant access internet standard',IIf(a.Demand_type='Install PC%','InstallPC',IIf(a.Demand_type='Internet Access%','Internet Access',IIf(a.Demand_type='Install Fixed Phone%','Install Fixed Phone',IIf(a.Demand_type='Install Fixed phone%','Install Fixed Phone',IIf(a.Demand_type='Internal transfer%','Internal transfer',IIf(a.Demand_type='Transfer outside%','Transfer outside',a.Demand_type)))))))) AS Demand_Type, Format(Month([Demand_launch_date_valid]) & "/" & Year([Demand_launch_date_valid]),'mm/yyyy') AS [Month]
    FROM Table_finale AS a
    WHERE (((a.Department)="Customer Services"));
    Si la réponse et les résultats sont conformes à tes attentes, il faut pas à pas reprendre ta requête afin de déterminer le point bloquant

    Dans toute chose, et avant d'avancer une supposition, il faut repartir de la base et trouver ou le point blesse. Peut-être as tu raison (je suis dubitatif !) mais ainsi nous en serons sûr..

    Les bonnes réflexions :

    1. Ma requête a t-elle fonctionné à un instant t ? (dans ce cas des copies renommées dans ta base si présentes t'aideront)
    2. Si oui au point 1, quelles sont les dernières modifications que j'ai apportées, sinon je la constitue pas à pas en validant chaque étape critique
    ...


    JimBoLion

  3. #3
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Car0le,


    Dans la continuité de ma réponse, une petite précision...

    sous Access le joker n'est pas % mais * à moins d'avoir activer la compatibilité SQL Server (personnellement je n'ai jamais utilisé ce paramètre) et ne peut juger de son efficacité.

    JimBoLion

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 56
    Points : 48
    Points
    48
    Par défaut
    Merci!!! Effectivement ça marche avec les *

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

Discussions similaires

  1. Mot commençant par (OpenXml)
    Par Tanoak_LaCapuche dans le forum C#
    Réponses: 6
    Dernier message: 29/06/2012, 14h29
  2. [WD-2010] Insertion Tabulation après les mots commençant par GEN
    Par nadir-1961 dans le forum Word
    Réponses: 2
    Dernier message: 21/05/2012, 18h47
  3. Recherche de mot commençant par une chaine dans un dictionnaire
    Par ram-0000 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 20/04/2012, 18h09
  4. [RegEx] Trouver un mot commençant par une lettre donnée
    Par Arget dans le forum Langage
    Réponses: 7
    Dernier message: 18/09/2011, 17h41
  5. Réponses: 2
    Dernier message: 15/09/2007, 10h10

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