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 :

Récupérer une seule valeur / GROUP BY


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut Récupérer une seule valeur / GROUP BY
    Bonjour,

    J'ai besoin d'un peu d'aide
    J'exécute la requête fournie en pièce jointe (j'ai été contraint de cacher certains éléments afin de préserver l'identité client, désolé).
    Le problème, c'est que je ne veux avoir que le code et libellé opération pour la dernière opération (MAX(DATE)).

    Le problème est que je n'ai pas d'identifiant unique (je n'ai malheureusement pas le choix)

    Comment faire ?

    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Tu n'as pas précisé ton SGBD, mais si tu ne cherches à récupérer que la dernière opération, tu peux peut être utiliser TOP 1 ou LIMIT 1 avec un ORDER OPERATIONSTART DESC.

    D'ailleurs, tu peux manifestement avoir plusieurs opérations avec une date identique, dans ce cas tu est censé en remonter plusieurs?

  3. #3
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut
    Hello !

    Le SGBD est SQL Server 2K5 ; Si je rajoute TOP1 je n'ai plus qu'une ligne et pas une liste de lignes comportant le maximum de la date opération pour chaque ligne

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Sous SQL Server 2K5, tu as les fonctions analytiques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * FROM (
    SELECT a.*, ROW_NUMBER() OVER(PARTITION BY TonGroupe ORDER BY laDate DESC) as rk
    FROM TaTable
    ) t
    WHERE rk = 1
    Pour chaque groupe défini par la clause PARTITION BY, tu affectes un numéro (ROW_NUMBER) selon l'ordre tri ORDER BY.
    Il ne reste plus qu'à garder le premier de chaque groupe

  5. #5
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut
    Je ne dirai qu'une chose : respect !

    ça marche du feu de dieu, je te remercie bien pour ton aide.

    Seb.

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

Discussions similaires

  1. Récupérer une seule ligne par groupe
    Par David55 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 30/12/2010, 19h59
  2. Réponses: 10
    Dernier message: 16/05/2010, 00h41
  3. Count(*)/Group by sur une seule valeur
    Par Darkolive dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/03/2010, 22h56
  4. Récupérer une seule valeur parmi plusieurs
    Par geraldgg dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/05/2007, 10h26
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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