Bonjour ou bonsoir à tous!!
Comment faire un seule requête pour trouver le MAX de "N°" dans le MAX de "Année", soit (le N°64).
Merci!!
Année N°
2004 63
2004 64
2004 65
2006 61
2006 62
2006 63
2006 64
Bonjour ou bonsoir à tous!!
Comment faire un seule requête pour trouver le MAX de "N°" dans le MAX de "Année", soit (le N°64).
Merci!!
Année N°
2004 63
2004 64
2004 65
2006 61
2006 62
2006 63
2006 64
en utilisant une sous-requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT MAX( numero) FROM ta_table WHERE annee = (SELECT MAX(annee) FROM ta_table)
On peut utiliser l'order by, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT MAX (numero) FROM table ORDER BY annee DESC
Mindiell
"Souvent, femme barrit" - Elephant man
Si votre SGBDR accepte une clause de limitation des lignes, vous pouvez faire :
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT TOP 1 numero FROM MaTable ORDER BY Annee DESC, numero DESC
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/ * * * * *
Envoyé par MindiellDans cet exemple on devrait avoir 62 car l'année max est 2005.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 10g SOC5> select * 2 from dvp; ANNEE NUMERO ---------- ---------- 2004 63 2004 64 2005 62 3 ligne(s) sélectionnée(s). 10g SOC5> select max(numero) 2 from dvp 3 order by annee desc; MAX(NUMERO) ----------- 64 1 ligne sélectionnée.
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Merci pour tout!!!!
çà marche!!!!
En effet, j'ai oublié de mettre l'année :Envoyé par Magnus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT annee, MAX (numero) FROM TABLE GROUP BY annee ORDER BY annee DESC
Mindiell
"Souvent, femme barrit" - Elephant man
L'année commence difficilement pour certain(e)sEnvoyé par Mindiell
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 10g SOC5> select * 2 from dvp; ANNEE NUMERO ---------- ---------- 2005 78 2006 75 2006 77 3 ligne(s) sélectionnée(s). 10g SOC5> select annee, max(numero) 2 from dvp 3 group by annee 4 order by annee desc; ANNEE MAX(NUMERO) ---------- ----------- 2006 77 2005 78 2 ligne(s) sélectionnée(s).
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Bah, je croyais qu'il voulait le max de chaque année... J'aurais mal compris
Mindiell
"Souvent, femme barrit" - Elephant man
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT ANNEE , MAX(NUMERO) FROM MA_TABLE WHERE 1 GROUP BY ANNEE ORDER BY ANNEE DESC LIMIT 0 , 1
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager