petit problème pour requete sql un poil complexe

petit problème pour requete sql un poil complexe - SQL/NoSQL - Programmation

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
Reply

Marsh Posté le 20-02-2005 à 21:46:34   

Reply

Marsh Posté le 21-02-2005 à 00:00:19    

:D :D :D 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 :
  1. "select * from TABLE"

Reply

Marsh Posté le 21-02-2005 à 00:27:50    

super, merci...

Reply

Marsh Posté le 21-02-2005 à 01:11:53    

select nom, max(version), date from progs group by nom


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-02-2005 à 01:14:08    

ça à l'air bon, merci beaucoup  :jap:


Message édité par dweis le 21-02-2005 à 01:14:16
Reply

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


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-02-2005 à 03:23:16    

t'as aucune notion du SQL j'ai l'impression

Reply

Marsh Posté le 21-02-2005 à 07:36:15    

C'est ça une requete complexe :??:

Reply

Marsh Posté le 21-02-2005 à 11:10:21    

et :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh 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 ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 21-02-2005 à 11:28:56   

Reply

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 ? [:heink]
edit: merde, benou dégaine plus vite que son ombre  [:jean-guitou]


Message édité par Harkonnen le 21-02-2005 à 11:32:46

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-02-2005 à 11:35:14    

Harkonnen a écrit :

tu parles à qui là ? à dweis ou à moins moins ? [:heink]


je sais pas non plus :o
mais dans un cas comme dans l'autre... [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-02-2005 à 11:43:56    

moins moins devient gentil [:xx_xx]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-02-2005 à 11:46:11    

simogeo a écrit :

moins moins devient gentil [:xx_xx]


les insultes sont interdites sur ce forum :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

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

Reply

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


---------------
MZP est de retour
Reply

Marsh Posté le 23-02-2005 à 01:34:28    

cinocks a écrit :

SELECT Nom_du_programme, max(date_de_la_version ) FROM MaTable
GROUP BY Nom_du_programme
 
Donnera la date de derniere version


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

Reply

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


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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 // [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

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.
 
et je veux pas de subselect :-/


http://eurekaweb.free.fr/image/billet-100_francs.jpg
 
+
 
http://blogsimages.skynet.be/images/000/298/924_mars.gif

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed