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

Oracle Discussion :

Requete sql retourne un mauvais résultat


Sujet :

Oracle

  1. #1
    Membre averti
    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
    Par défaut Requete sql retourne un mauvais résultat
    Bonjour
    j'ai une requete qui répète un ligne plusieurs fois je ne sais pas pourquoi!

    C'est mon requete , si veux pouvez m'aider en suivant la logique puisque je sais que la requete est un peu compliquée
    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
    57
    58
    59
     
    select   floor((a.created-c.created)*24)       || ' HOURS ' ||        mod(floor((a.created-c.created)*24*60),60)      || ' MINUTES ' ,a.pkey as AssignedGroupResponseTime,a.pkey,d.newString as AssignedGroup 
     from 
    ( select g.created,g.issueid as groupid1, ji.pkey ,ci.newString from   changegroup g join   jiraissue ji on (ji.id = g.issueid) join   changeitem ci on (ci.groupid = g.id)
     where (g.created, ji.pkey) in ( select min(g.created) ,ji.pkey 
     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 like 'Triage' 
     and  p.pname = 'project'
     and pr.pname='P3' 
    and  ji.created between '01/03/2011' and  '16/08/2011' group by ji.pkey )) a left join 
      ( select ji.created, ji.id as groupid2 ,ji.pkey ,ci.newString     
     from   jiraissue ji     join   changegroup g on (g.issueid = ji.id)  
       join   changeitem ci on (ci.groupid = g.id) 
        join   project p on (p.id = ji.project)  
       where  p.pname = 'project'   
      and ci.field = 'Group'   
      and  ci.oldString like 'Triage'    
      and  ji.created between '01/03/2011' and  '16/08/2011'   ) b
     ON ( a.pkey = b.pkey)    
    left join (   select g.created, g.issueid as groupid1 ,ji.pkey ,ci.newString     from   changegroup g  
       join   jiraissue ji on (ji.id = g.issueid)      
    join   changeitem ci on (ci.groupid = g.id)    
     where (g.created, ji.pkey) in
     (  select min(g.created) ,ji.pkey     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='assignee'    
       and ci.newString is not NULL      
       and  p.pname = 'project' 
        and pr.pname='P3'   
       and ji.created between '01/03/2011' and  '16/08/2011'   
       group by ji.pkey)) c     
      ON (c.pkey = a.pkey)  
        left join (   
        select g.created, g.issueid as groupid1 ,ji.pkey ,ci.newString    
        from   changegroup g  
        join   jiraissue ji on (ji.id = g.issueid)   
        join   changeitem ci on (ci.groupid = g.id)    
        where (g.created, ji.pkey) 
        in (     select min(g.created) ,ji.pkey    
        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='assigned group'    
        and ci.newString is not NULL    
       and  p.pname = 'project'   
        and pr.pname='P3'   
        and  ji.created between '01/03/2011' and  '16/08/2011'    
       group by ji.pkey)) d   
       ON (d.pkey = c.pkey);

  2. #2
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    sans rentrer dans le detaille de ta requete, si tu as des lignes qui se repetent(identiques) tu utilise

  3. #3
    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
    Le DISTINCT est un pansement !

    Il faut analyser la requete pour savoir ce qui provoque les retours multiples (Condition de jointure, prédicats érronés, mauvaises conditions de regroupement...).

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/03/2015, 09h18
  2. Réponses: 1
    Dernier message: 05/08/2014, 19h51
  3. [MySQL] Requête qui retourne un mauvais résultat
    Par chris22 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/03/2012, 16h15
  4. Réponses: 3
    Dernier message: 20/10/2006, 09h36
  5. Réponses: 1
    Dernier message: 06/06/2006, 16h51

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