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 :

SQL premier enregistrement dans un group by


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut SQL premier enregistrement dans un group by
    Bonjour ,

    comment retrouver le premier enregistrement (ou le dernier) dans une requete
    avec group by ? il y a MAX,MIN,SUM ... mais premier et dernier ?

    avec access il y a first et last et avec SQL SERVEUR ?

    merci

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    La notion de premier et dernier enregistrement n'existe pas pour un SGBDR !
    Et là vous confondez certainement ou vous n'avez pas bien expliqué.
    Même accès ne possède pas une commande qui retourne le premier enregistrement, ni même le dernier...
    Que voulez vous exactement ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut
    Je ne connais pas beaucoup sql serveur mais access oui !

    voici un exemple de requête d'une appli boursière
    avec une table impcours (code,date,premier,plus haut,plus bas,dernier)
    qui retourne la valeur de la première ligne de la colonne premier, le max de la colonne plus haut,le mini de la colonne plus bas et la valeur de la dernier ligne de la colonne dernier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
    Impcours.code, 
    Impcours.date, 
    First(Impcours.premier) AS PremierDepremier, 
    Max(Impcours.[plus haut]) AS [MaxDeplus haut], 
    Min(Impcours.[plus bas]) AS [MinDeplus bas], 
    Last(Impcours.dernier) AS DernierDedernier,
    Sum(Impcours.volume) AS SommeDevolume,
    Max(Impcours.[HEURE]) AS [MaxDeHEURE]"
    donc pas d’équivalent avec sql serveur ?
    merci pour vos réponses

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 002
    Billets dans le blog
    6
    Par défaut
    Non; First est une imbécilité d'Access et contrevient aux notions fondatrice des SGBDR...

    Expliquez, en respectant la charte de postage, ce que vous voulez obtenir :
    http://www.developpez.net/forums/showthread.php?t=96701

    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/ * * * * *

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Par défaut
    En SQL Server, il y a un argument appelé TOP dans la clause SELECT qui permet d'avoir un nombre limité d'enregistrement.

    Ainsi;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT TOP 1 premier
    FROM ImpCours
    ORDER BY premier
     
    SELECT TOP 1 dernier
    FROM ImpCours
    ORDER BY dernier DESC
    La première sélection retourne 1 seul enregistrement, contenant la première valeur de la colonne premier, selon l'ordre de premier.
    La deuxième sélection retourne 1 seul enregistrement, contenant la première valeur de la colonne dernier selon l'ordre inverse de dernier, et est donc équivalente a la dernière valeur de dernier.

    Attention, il faut toujours utiliser la clause ORDER BY pour trier les résultats, sinon on s'expose à ne pas toujours avoir la même valeur. Selon les insertions futures, le résultat pourra évidemment changer.

    TOP étant un argument de la clause SELECT, il modifie le résultat de toute la sélection, et non pas d'une colonne en particulier. Pour l'utiliser dans une sélection avec colonnes multiples comme dans ton exemple, il faudra utiliser des sous-sélections.

    L'argument TOP de la clause SELECT n'est pas portable (il n'existe pas en Oracle, par exemple).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Non; First est une imbécilité d'Access et contrevient aux notions fondatrice des SGBDR...

    Expliquez, en respectant la charte de postage, ce que vous voulez obtenir :
    http://www.developpez.net/forums/showthread.php?t=96701

    A +

    Quelle drôle de réponse !!! la personne cherche une solution technique , on lui parle de règlement !!

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 002
    Billets dans le blog
    6
    Par défaut
    Ce n'est pas ma faute si ACCESS se vante d'être un SGBDR mais n'en est absolument pas un !

    Les personnes qui utilisent access ou autre pseudo SGDBR utilisent des commandes imbéciles qui n'existent nulle part ailleurs et qui font du n'importe quoi et estimerait que l'on doit reproduire leurs ignominies sur de vrais SGBDR !

    Autrement dit, si l'on veut utiliser proprement un SGBDR il y a bien des règles à respecter...

    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/ * * * * *

Discussions similaires

  1. afficher les 10 premiers enregistrements pour chaque groupe
    Par freestyler dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2008, 15h46
  2. Premier Enregistrement dans un formulaire
    Par nomade333 dans le forum IHM
    Réponses: 4
    Dernier message: 24/12/2007, 18h19
  3. Sélection du premier enregistrement de chaque groupe
    Par mout1234 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/05/2007, 16h27
  4. Inno Setup : Enregistrer dans la bdr le group
    Par yoghisan dans le forum Outils
    Réponses: 1
    Dernier message: 05/06/2005, 16h04
  5. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30

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