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

Langage SQL Discussion :

Ecrire une requête telle que un champ prenne deux valeurs en même temps


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 32
    Points : 29
    Points
    29
    Par défaut Ecrire une requête telle que un champ prenne deux valeurs en même temps
    Bonjour,

    Je dois écrire une requête qui vérifie les conditions suivants:
    1/ oldString=Triage + field='Group' et en même temps newString<> NULL +field='assignee'
    Je veux dire quand j'écris field='Group' and field='assignee' que la requête va retourner toujours null puisque ce n'est pas possible d'avoir un même champ avec deux valeurs. Mais dans mon cas, dans un premier temps, le champ field contient group, ensuite il va contenir assignee (c'est une table qui enregistre un historique)

    Ma requête :

    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
    select TIMEDIFF(a.created,b.created) ,a.groupid1,a.issueName
    from
        (select g.created, g.issueid as groupid1 ,ji.pkey as issueName
            from   changegroup g
            join   changeitem ci on (ci.groupid = g.id)
            join   jiraissue ji on (ji.id = g.issueid)
            join   project p on (p.id = ji.project)
            join   priority pr on (pr.id = ji.priority)
            where  ci.field = 'Group'
            and  ci.oldString = 'Triage' 
            and  ci.field='assignee'
            and ci.newString <> NULL
            and  p.pname = 'Test'
            and pr.pname='P1'
            and  ji.created between '2011-08-11 14:01:00' and  '2011-08-12 14:11:00'
        ) a 
    left join   (
            select ji.created, ji.id as groupid2 ,ji.pkey as issueName
            from   jiraissue ji
            join   changegroup g on (g.issueid = ji.id)
            join   project p on (p.id = ji.project)
            where  p.pname = 'Test'
              and  ji.created between '2011-08-11 14:01:00' and '2011-08-12 14:11:00' 
        ) b ON (a.groupid1 = b.groupid2 and a.issueName = b.issueName);

    Rq :La table qui contient les valeurs de oldString and newString et field est en pièce jointe

    Merci bien
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Première chose : relisez votre message avant de l'envoyer (pour faire simple, je ne comprend rien)


    Et surtout, vérifiez comment doivent s’écrire les conditions utilisant le NULL.
    Ce n'est pas = ou <>, etc mais IS ou NOT IS
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Olivier a raison, on ne comprend malheureusement pas grand chose à ton énoncé, et ça ne donne pas vraiment envi de s'y pencher. Néanmoins je pense saisir à la lecture de
    1/ oldString=Triage + field='Group' et en même temps newString<> NULL +field='assignee'
    que ce que tu veux faire c'est soit:
    1- Retourner l'intersection des enregistrements de deux requêtes, où la première vérifie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (oldString=Triage and field='Group')
    et la deuxième qui vérifie elle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (newString is not null and field='assignee')
    Autrement dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where ...
    ((oldString=Triage and field='Group') and (newString is not null and field='assignee'))
    2- Retourner les enregistrement qui vérifient la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where ...
    ((oldString=Triage and field='Group') or (newString is not null and field='assignee'))

Discussions similaires

  1. Ecrire une requête détaillée d'accès à un fichier excel
    Par alunama dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2008, 18h58
  2. Réponses: 3
    Dernier message: 28/03/2008, 10h48
  3. Récupérer les valeurs d'une requête SQL dans un champs html SELECT
    Par tamiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/11/2007, 13h27
  4. Récupérer grâce à une requête SQL que les champs modifiés
    Par guigui11 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 29/08/2006, 09h58
  5. Ecrire une requête
    Par justinetb dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/06/2006, 21h12

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