petit problème pour requete sql un poil complexe - SQL/NoSQL - Programmation
Marsh Posté le 21-02-2005 à 00:00:19
Eu, si je lis bien ta phrase : "Je cherche simplement une requete pour afficher la liste de tous les programme avec le numéro de la dernière version et sa date."
Code :
|
Marsh Posté le 21-02-2005 à 01:11:53
select nom, max(version), date from progs group by nom
Marsh Posté le 21-02-2005 à 01:14:08
ça à l'air bon, merci beaucoup
Marsh Posté le 21-02-2005 à 01:18:17
de rien; ça devrait marcher tant que ton champ version est un entier, sinon je sais pas comment max se comporte sur des chaines de caractere en fait
Marsh Posté le 21-02-2005 à 11:10:21
ReplyMarsh Posté le 21-02-2005 à 11:28:56
spike a écrit : t'as aucune notion du SQL j'ai l'impression |
t'as aucune notion du respect j'ai l'impression ...
Marsh Posté le 21-02-2005 à 11:32:07
spike a écrit : t'as aucune notion du SQL j'ai l'impression |
tu parles à qui là ? à dweis ou à moins moins ?
edit: merde, benou dégaine plus vite que son ombre
Marsh Posté le 21-02-2005 à 11:35:14
Harkonnen a écrit : tu parles à qui là ? à dweis ou à moins moins ? |
je sais pas non plus
mais dans un cas comme dans l'autre...
Marsh Posté le 21-02-2005 à 11:43:56
moins moins devient gentil
Marsh Posté le 21-02-2005 à 11:46:11
simogeo a écrit : moins moins devient gentil |
les insultes sont interdites sur ce forum
Marsh Posté le 21-02-2005 à 16:22:46
bon, en fait ça ne marche pas ta solution "select nom, max(version), date from progs group by nom" car ça n'affiche pas systématiquement la date qui correspond à la dernière version
Marsh Posté le 22-02-2005 à 19:02:15
SELECT Nom_du_programme, max(date_de_la_version ) FROM MaTable
GROUP BY Nom_du_programme
Donnera la date de derniere version
En subselect
SELECT a1.Nom_du_programme, a1.Version_du_programme, a1.Date_de_la_version
FROM MaTable a1
WHERE a1.Date_de_la_version = (SELECT max(b1.Date_de_la_version)
FROM MaTable b1 WHERE b1.Nom_du_programme = a1.Nom_du_programme)
devrait retourner le nom du programme, sa version et la date de celle-ci
Nom_du_programme
[int] Version_du_programme
[date] Date_de_la_version
Marsh Posté le 23-02-2005 à 01:34:28
cinocks a écrit : SELECT Nom_du_programme, max(date_de_la_version ) FROM MaTable |
oui mais ça donnera pas le numéro de la dernière version à ce moment là. j'ai vraiment besoin de l'enregistrement complet qui correspond à la dernière version en fait.
et je veux pas de subselect :-/
Marsh Posté le 23-02-2005 à 01:36:09
au hasard si tu fais un group by sur (nom, date) ça le fait pas? je suis pas du tout sur de la syntaxe/semantique du group by en fait
Marsh Posté le 23-02-2005 à 01:40:52
euh sinon en selectionant max(version), name, max(date) from truc group by name, ça devrait marcher ? pour autant que tes versions et tes dates augmentent en //
Marsh Posté le 23-02-2005 à 03:27:51
dweis a écrit : oui mais ça donnera pas le numéro de la dernière version à ce moment là. j'ai vraiment besoin de l'enregistrement complet qui correspond à la dernière version en fait. |
+
Marsh Posté le 20-02-2005 à 21:46:34
J'ai une table avec (en gros) 3 champs :
[varchar] Nom_du_programme
[int] Version_du_programme
[date] Date_de_la_version
qui contient donc une liste de programme avec leurs différentes versions (donc il peut y avoir plusieurs enregistrement pour un même programme, qui correspondent à des versions différentes)
Je cherche simplement une requete pour afficher la liste de tous les programme avec le numéro de la dernière version et sa date et donc je ne veux pas plusieurs enregistrement par programme mais uniquement celui correspondant à sa dernière version.
Ben j'ai beau chercher en utilisant du order by, having ou distinct mais je trouve pas de solution :-/
Message édité par dweis le 21-02-2005 à 00:28:30