Help please : selectionner le max d'un champs dans une table - Forums de discussion

Navigation

Accueil du forum » Base de données » Help please : selectionner le max d'un champs dans une table


Le sujet

thaniaHelp please : selectionner le max d'un champs dans une table
Par thania, le Lundi 19/02/2007 à 17h57'43
34 messages
Bonjour,

Je voudrais sélectionner le maximum d'un champs dans une table j'ai fait la select ci-dessous mais la réponse me sélectionne tous les données et pas les champs ... Merci d'avance de m'aider

SELECT individu.NO_INDIVIDU, corps.c_categorie, corps.lc_corps, grade.lc_grade,
MAX(element_carriere.D_EFFET_ELEMENT), element_carriere.NO_SEQ_ELEMENT
FROM individu, corps,element_carriere, grade WHERE individu.NO_INDIVIDU='1081'
and
individu.NO_INDIVIDU=element_carriere.NO_DOSSIER_PERS AND grade.c_grade=element_carriere.c_grade
and corps.c_corps=element_carriere.c_corps
group by element_carriere.D_EFFET_ELEMENT, element_carriere.NO_SEQ_ELEMENT

















NO_INDIVIDU c_categorie lc_corps lc_grade MAX(element_carriere.D_EFFET_ELEMENT)NO_SEQ_ELEMENT
1081 B S.A.S.U SASU CH.SE 01/01/1993 10
1081 B SASU NV.ST SASU CL.N. 01/08/1995 12
1081 B SASU NV.ST SASU CL.S. 01/08/1996 13
1081 A A.A.S.U A.A.S.U. (NOUV. ST.) 01/09/2001 16
1081 B S.A.S.U S.A.S.U. 13/09/1972 1
1081 B S.A.S.U S.A.S.U. 13/09/1973 2
1081 B S.A.S.U S.A.S.U. 13/09/1976 3
1081 B S.A.S.U S.A.S.U. 24/02/1984 6
1081 B S.A.S.U S.A.S.U. 24/04/1989 8
1081 B S.A.S.U S.A.S.U. 24/06/1982 5
1081 B S.A.S.U S.A.S.U. 24/08/1986 7
1081 B S.A.S.U SASU CH.SE 24/08/1994 11
1081 B SASU NV.ST SASU CL.S. 24/08/1996 14
1081 B S.A.S.U S.A.S.U. 24/12/1980 4
1081 B S.A.S.U S.A.S.U. 24/12/1991 9
1081 B SASU NV.ST SASU CL.S. 24/12/1999 15
1081 A A.A.S.U A.A.S.U. (NOUV. ST.) 26/10/2003 17

________________
thania

Les réponses

xersesPar xerses, le Lundi 19/02/2007 à 18h16'08
736 messages
Si tu pouvais mettre exactement ton code sql entre [ code ] et [ /code ] ce sera plus lisible, et nous donner aussi exactement ce qu'il affiche.

Merci.

[Message édité par xerses le 19/02/2007 à 18h16'31]

________________
Anything that can go wrong will go wrong (Murphy)
Statut: Modérateur

thaniaPar thania, le Lundi 19/02/2007 à 18h25'20
34 messages
Merci encore mon ange gardien ... Désolé de vous embêter tout le temps, juste c'est que je dois rendre ce projet pour la semaine prochaine ...


voici mon code ci-dessous :

SELECT individu.NO_INDIVIDU, corps.c_categorie, corps.lc_corps, grade.lc_grade,
MAX(element_carriere.D_EFFET_ELEMENT), element_carriere.NO_SEQ_ELEMENT
FROM individu, corps,element_carriere, grade WHERE individu.NO_INDIVIDU='1081' 
and 
individu.NO_INDIVIDU=element_carriere.NO_DOSSIER_PERS AND grade.c_grade=element_carriere.c_grade 
and corps.c_corps=element_carriere.c_corps
group by element_carriere.D_EFFET_ELEMENT, element_carriere.NO_SEQ_ELEMENT



et ce qui affiche est

NO_INDIVIDU c_categorie lc_corps lc_grade MAX(element_carriere.D_EFFET_ELEMENT)NO_SEQ_ELEMENT
1081 B S.A.S.U SASU CH.SE 01/01/1993 10
1081 B SASU NV.ST SASU CL.N. 01/08/1995 12
1081 B SASU NV.ST SASU CL.S. 01/08/1996 13
1081 A A.A.S.U A.A.S.U. (NOUV. ST.) 01/09/2001 16
1081 B S.A.S.U S.A.S.U. 13/09/1972 1
1081 B S.A.S.U S.A.S.U. 13/09/1973 2
1081 B S.A.S.U S.A.S.U. 13/09/1976 3
1081 B S.A.S.U S.A.S.U. 24/02/1984 6
1081 B S.A.S.U S.A.S.U. 24/04/1989 8
1081 B S.A.S.U S.A.S.U. 24/06/1982 5
1081 B S.A.S.U S.A.S.U. 24/08/1986 7
1081 B S.A.S.U SASU CH.SE 24/08/1994 11
1081 B SASU NV.ST SASU CL.S. 24/08/1996 14
1081 B S.A.S.U S.A.S.U. 24/12/1980 4
1081 B S.A.S.U S.A.S.U. 24/12/1991 9
1081 B SASU NV.ST SASU CL.S. 24/12/1999 15
1081 A A.A.S.U A.A.S.U. (NOUV. ST.) 26/10/2003 17

au lieu d'afficher que la dernière ligne c'est à dire
1081 A A.A.S.U A.A.S.U. (NOUV. ST.) 26/10/2003 17


Puisque je cherche la date effet maximum c.a.dire
26/10/2003

[Message édité par xerses le 19/02/2007 à 18h34'44]

________________
thania

xersesPar xerses, le Lundi 19/02/2007 à 18h38'01
736 messages
Suffit de trier par date et mettre une limite à ta requête.
A la fin de ton "SELECT ..." tu mets un ORDER BY variable_date DESC LIMIT 1, il ne prendra que la première ligne une fois ton tableau trié par date.

Par contre, avec les dates sous ce format, je en sais plus s'il peut les trier. A voir.

[Message édité par xerses le 19/02/2007 à 18h38'26]

________________
Anything that can go wrong will go wrong (Murphy)
Statut: Modérateur

topsitePar topsite, le Mercredi 21/02/2007 à 13h21'08
3 messages
Bonjour Thania,

Plusieurs solutions à ton ton problème en fait cela dépends du résultat escompté.

Pour faire simple voici deux méthode base.

La première est basée sur l'agrégation des informations ce qui paraît normal pour une fonction d'agreggation comme min max sum ...

Pour cela il te faut déterminer ton ou tes axes d'aggreg puis ajouter l'option group by var1, var2

Exemple sur une base de quidam je recherche le nombre de quidam et l'age maxi des quidam par departement

select dept, count(quidam) as nb, max(age) as mage
from la_table
group by dept
order by dept

Le critère d'aggreggation étant dept il y aura une ligne en retour pour chaque dept.

La deuxième solution acceptable sur des tables de petites volumétrie et suivant le nombre d'accès concurents est le sous select

Eemple

Select dept, ville, (select max(age) from la_table where dept=a.dept) as mage
from la_table a
order by 1, 2

ICI le a est mis pour la première table, si tu l'occulte tu aura le plus vieux de toute la table.

tu peux utiliser la position relative de la variable résultante plutôt que son nom ce qui est pratique pour les variables calculées et les noms de variable à rallonges.

Bonne réussite.

Cdt Pascal

[Message édité par topsite le 21/02/2007 à 13h24'09]

[Message édité par topsite le 21/02/2007 à 13h25'38]

________________
CDT,
[url=http://www.01-topsites.com]01 TopSites Audiences[/url]
[url=http://www.01-depannage-informatique.com]01 Dépannage Maintenance Informatique[/url]
[url=http://www.01-location-ordinateur.com]01 Location Ordinateur[/url]

Pages

Réponses les plus anciennes... 1 ...Réponses les plus récentes

A lire également

- Les conditions générales d'utilisation du site

Top-sites membres

Les Amis des Animaux | -1281 pointsDark Lord Center | -1889 pointsastuces blog et ciné live | -1901 pointsCoupé 406 | -2252 points

Discussions récentes dans les forums

Membres
Pseudo:
Pass: Mémoriser ?
Problème d'identificationInscription gratuite
Tribune libre
CNIL: 1098091
Connectés: 8
Google:
Publicité: Vidéo humoristique de publicité télé.