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 :

MAX et GROUP BY


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 98
    Par défaut MAX et GROUP BY
    Bonjour,

    J'essaie de modifier ma requete SQL pour qu'elle n'affiche qu'un seul matricule par level (en prenant le max), pour n'avoir donc qu'un seul code barre traceur par matricule au final

    Dans mon exemple la ligne1 est donc en trop.

    Je pensais partir sur un max de level et un group by sur les 4 colonnes suivantes mais je ne sais pas comment gérer la derniere colonne.

    Quelqu'un saurait m'aider?
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    WITH T AS
    (SELECT *, ROW_NUMBER() OVER(PARTITION BY matricule  ORDER BY LEVEL DESC) AS N
     FROM   MaTable)
    SELECT *
    FROM   T
    WHERE  N = 1
    1) apprenez la langage SQL. Mon site web comme mon bouquin peuvent vous êtes utils.
    2) pour en savoir plus sur les fonction de fenêtrage, lisez l'article que j'ai écrit : http://sqlpro.developpez.com/article...clause-window/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Ya rien de bien compliqué, sans faire une usine à gaz, ou alors j'ai rien compris à la question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT matricule,vhard,vsoft,vboot,[code barre traceur], max(level)
    FROM TaTable
    GROUP BY matricule,vhard,vsoft,vboot,[code barre traceur]

    Edit : Au passage, éviter tant que possible, les espaces, caractères accentués et autres caractères particuliers dans les nom de colonnes est une très bonne pratique.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 98
    Par défaut
    [code barre traceur] est différent pour chaque level donc je ne peut pas le mettre dans le group by et le nom de colonne m'est imposé
    Pour le fenetrage j'en utilise deja un dans ma requete, je vais regarder cette piste

    merci pour vos réponses

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Exact, j'avais pas vu la différence qui peut facilement passée inaperçue.

    Donc là c'est effectivement plus compliqué, d’où la solution de SqlPro

  6. #6
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Donc là c'est effectivement plus compliqué, d’où la solution de SqlPro
    Compliqué ne veut pas dire moins bien, en l'occurrence ici c'est également moins coûteux que votre distinct sur 5 colonnes...

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

Discussions similaires

  1. Requête avec MAX et GROUP BY (2)
    Par kmarcel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/02/2008, 12h55
  2. requête avec MAX et GROUP BY
    Par arcane dans le forum Langage SQL
    Réponses: 8
    Dernier message: 30/01/2008, 13h21
  3. Problème sélection MAX() et GROUP BY
    Par nicolep dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/06/2007, 11h47
  4. [SQL Server] Requete avec MAX et group by
    Par joKED dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/01/2007, 13h00
  5. Requete avec max et group by
    Par Maxime555 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/07/2006, 11h48

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