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

MS SQL Server Discussion :

[MSDE] Problème de groupage sur une requête


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut [MSDE] Problème de groupage sur une requête
    Salut à tous !

    Je dispose des deux tables suivantes:

    Demande

    Numero|Type|Codeuf
    1 RI 2001
    2 RD 2001
    3 RU 1101
    4 RM 04

    DemandeProduit

    NumeroBon|Codeproduit
    1 A1
    1 A2
    1 A3
    2 A5
    2 A1
    3 A4
    5 A5

    J'effectue la requete suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    select count(demandeproduit.codeproduit) as nbrlignes, demande.codeuf, 
    case
    when demande.type='RI' then 'UF'
    when demande.type='RD' then 'UF'
    when demande.type='RU' then 'UF'
    when demande.type='RM' then 'MP'
    else demande.type
    end as type 
    from demande,demandeproduit 
    where demande.numero=demandeproduit.numerobon and demande.type in ('RU','RI','RD','RM')
    group by demande.codeuf,demande.type
    Et j'obtiens le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    NbrLignes|codeuf|type    
    3	2001    	UF
    2	2001    	UF
    1	04      	MP
    1	1101    	UF
    Et je souhaite avoir le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    NbrLignes|codeuf|type    
    5	2001    	UF
    1	04      	MP
    1	1101    	UF
    Que dois-je faire dans ma requête pour y parvenir ?

    D'avance Merci !

  2. #2
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Je dirais que le problème vient de "GROUP BY demande.codeuf,demande.type", je crois que si t'enlève la partie souligné t'auras le résultat souhaité.
    En fait c'est ton CASE qui est trompeur:

    Voici le résultat que tu as otiennu:
    NbrLignes|codeuf|type
    3 2001 UF //RI, y'a ça en vérité
    2 2001 UF //RD, y'a ça en vérité
    1 04 MP
    1 1101 UF
    Donc avec un group by sur la colonne type c'est normal, impossible de grouper le tout en une seule ligne avec 5 2001 UF

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT count(demandeproduit.codeproduit) AS nbrlignes, 
           demande.codeuf, 
           case when demande.type='RM' then 'MP'  else 'UF' end AS type 
    FROM demande INNER JOIN demandeproduit 
    ON demande.numero=demandeproduit.numerobon 
    WHERE demande.type IN ('RU','RI','RD','RM')
    GROUP BY demande.codeuf, case when demande.type='RM' then 'MP'  else 'UF' end

  4. #4
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Merci pour votre aide les amis !

    Ca fonctionne bien maintenant !

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

Discussions similaires

  1. [10gR2] Problème de lenteur sur une requête
    Par daddy2014 dans le forum SQL
    Réponses: 1
    Dernier message: 15/07/2014, 18h18
  2. Problème de totalisation sur une requête
    Par lodan dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/11/2009, 18h40
  3. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51
  4. Problème avec coun(*) sur une requête
    Par Kaoru-tabris dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2007, 15h00
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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