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
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
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 ?
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
donc pas d’équivalent avec sql serveur ?
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]"![]()
merci pour vos réponses
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/ * * * * *
En SQL Server, il y a un argument appelé TOP dans la clause SELECT qui permet d'avoir un nombre limité d'enregistrement.
Ainsi;
La première sélection retourne 1 seul enregistrement, contenant la première valeur de la colonne premier, selon l'ordre de premier.
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 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).
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/ * * * * *
Partager