Requete en fonction du max
Résolu/Fermé
lefadrine
Messages postés
28
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
-
11 sept. 2009 à 19:43
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 - 14 sept. 2009 à 23:40
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 - 14 sept. 2009 à 23:40
A voir également:
- Requete en fonction du max
- Fonction si et - Guide
- I14 pro max - Accueil - Guide téléphones
- Fonction moyenne excel - Guide
- Max tv gratuit - Télécharger - Télévision
- Max maillot avis - Forum Consommation & Internet
20 réponses
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
12 sept. 2009 à 10:03
12 sept. 2009 à 10:03
La soltuion est dans la documentaion ;)
https://dev.mysql.com/doc/refman/8.0/en/example-maximum-column-group-row.html
https://dev.mysql.com/doc/refman/8.0/en/example-maximum-column-group-row.html
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
11 sept. 2009 à 20:09
11 sept. 2009 à 20:09
salut essai un distinct devant max mais je ni crois pas tro la synthax devrais passer mais pas sur pour le resultat
lefadrine
Messages postés
28
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
11
12 sept. 2009 à 03:24
12 sept. 2009 à 03:24
Merci bien mais non, en fait le distinct ne sert à rien ici. Le group by dans la 2eme requete élimine déjà les tuples redondants, car par définition il les regroupe en fonction du max de la valeur...
Pour répondre à ce problème, je pense qu'il faut apporter du sang neuf, càd voir la requete sous une autre forme, laquelle je n'arrive toujours pas à définir !
Pour répondre à ce problème, je pense qu'il faut apporter du sang neuf, càd voir la requete sous une autre forme, laquelle je n'arrive toujours pas à définir !
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
12 sept. 2009 à 14:29
12 sept. 2009 à 14:29
c pas tres clair si tu avais la solution et l expliquer cela serai mieu je pense
merci
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
12 sept. 2009 à 14:35
12 sept. 2009 à 14:35
a quoi correpond le T1 et T2 merci
lefadrine
Messages postés
28
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
11
12 sept. 2009 à 17:08
12 sept. 2009 à 17:08
T1 et T2 sont des déclarations de l'objet "table". Des variables si tu préfères, qui représente la table "table".
Ici l'astuce consiste à utiliser deux "table" pour pouvoir récupérer les bonnes infos en faisant une jointure sur code entre les deux pour obtenir les bons max par code.
Ici l'astuce consiste à utiliser deux "table" pour pouvoir récupérer les bonnes infos en faisant une jointure sur code entre les deux pour obtenir les bons max par code.
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
12 sept. 2009 à 17:42
12 sept. 2009 à 17:42
ah ok merci ce sont des nom fictif pour pouvoir les comparer ds cette meme requete dc ok merci
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
12 sept. 2009 à 17:46
12 sept. 2009 à 17:46
Par contre moi j ai un souci avec la requete car j ai 2 valeur max identique pour la meme personne mais il me renvoi les 2 resultat voici ma requete tirer de la votre
SELECT *
FROM new T1
WHERE num=(SELECT MAX(T2.num)
FROM new T2
WHERE T1.nom = T2.nom);
merci
SELECT *
FROM new T1
WHERE num=(SELECT MAX(T2.num)
FROM new T2
WHERE T1.nom = T2.nom);
merci
lefadrine
Messages postés
28
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
20 avril 2010
11
13 sept. 2009 à 20:07
13 sept. 2009 à 20:07
oui c'est normal c'est le but recherché pour cette requête, regarde mon premier post, plus particulièrement les résultats attendus à partir de ma table de départ.
j'obtiens 2 fois le tuple "545 -22", et c'est ce que je souhaite.
A mon avis cette requête ne correspond pas à ce que tu souhaites obtenir. Donne nous un exemple pour t'aider...
j'obtiens 2 fois le tuple "545 -22", et c'est ce que je souhaite.
A mon avis cette requête ne correspond pas à ce que tu souhaites obtenir. Donne nous un exemple pour t'aider...
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 19:42
14 sept. 2009 à 19:42
voici ma requete
SELECT *
FROM new
WHERE num in( SELECT MAX(num) FROM new GROUP BY nom);
si g 2 meme valeur pour num il me renvoi les 2 enregistrement peut etre normal
SELECT *
FROM new
WHERE num in( SELECT MAX(num) FROM new GROUP BY nom);
si g 2 meme valeur pour num il me renvoi les 2 enregistrement peut etre normal
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
14 sept. 2009 à 19:48
14 sept. 2009 à 19:48
Ajoute un group by sur num sur ton select (pas celui contenu dans le not in).
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 19:56
14 sept. 2009 à 19:56
c a dire je ne vois pas ce que tu veux dire
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 20:15
14 sept. 2009 à 20:15
re
ca ne marche pas meme resultat
ca ne marche pas meme resultat
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
14 sept. 2009 à 20:49
14 sept. 2009 à 20:49
Cela fonctionne très bien.
mysql> CREATE TABLE new (num INT, nom VARCHAR(20)); Query OK, 0 rows affected (0.07 sec) mysql> INSERT INTO new VALUES(10, '10-a'), (20, '20-a'), (10, '10-b'), (30, '30-a'); Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT N1.num, N1.nom FROM new N1 WHERE N1.num IN (SELECT MAX(N2.num) FROM new N2 GROUP BY N2.NUM); +------+------+ | num | nom | +------+------+ | 10 | 10-a | | 20 | 20-a | | 10 | 10-b | | 30 | 30-a | +------+------+ 4 rows in set (0.01 sec) mysql> SELECT N1.num, N1.nom FROM new N1 WHERE N1.num IN (SELECT MAX(N2.num) FROM new N2 GROUP BY N2.NUM) GROUP BY N1.num; +------+------+ | num | nom | +------+------+ | 10 | 10-a | | 20 | 20-a | | 30 | 30-a | +------+------+ 3 rows in set (0.00 sec)
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 21:04
14 sept. 2009 à 21:04
voici ma requete
SELECT N1.num,N1.nom
FROM new AS N1
WHERE (((N1.num) In (SELECT MAX(N2.num) FROM new N2 GROUP BY N2.NUM)))
GROUP BY N1.num;
probleme il me dit que 'nom' ne fait pas partti de la fonction d'agregat
SELECT N1.num,N1.nom
FROM new AS N1
WHERE (((N1.num) In (SELECT MAX(N2.num) FROM new N2 GROUP BY N2.NUM)))
GROUP BY N1.num;
probleme il me dit que 'nom' ne fait pas partti de la fonction d'agregat
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
14 sept. 2009 à 21:10
14 sept. 2009 à 21:10
C'est normal, la colonne nom n'était valable que pour l'exemple que je t'ai montré, je doute que tu ais une colonne portant ce nom.
A toi de remplacer par tes propres noms de colonnes.
Sinon, évite aussi les parenthèses superflues qui ne sont que source d'erreurs.
A toi de remplacer par tes propres noms de colonnes.
Sinon, évite aussi les parenthèses superflues qui ne sont que source d'erreurs.
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 21:11
14 sept. 2009 à 21:11
bah si mon champ s appel nom
c le group by de la fin qui pose probleme il n en veu pas
c le group by de la fin qui pose probleme il n en veu pas
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
14 sept. 2009 à 21:55
14 sept. 2009 à 21:55
Montre le message d'erreur stp.
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
14 sept. 2009 à 22:07
14 sept. 2009 à 22:07
alors:
vous avez essayé d'executer une requete ne comprenant pas l'expression specifié 'nom' com une partie de la fonction d'agregat
voila
vous avez essayé d'executer une requete ne comprenant pas l'expression specifié 'nom' com une partie de la fonction d'agregat
voila
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
14 sept. 2009 à 23:40
14 sept. 2009 à 23:40
Tout ce que je vois d'incorrect dans ta requête, c'est que tu as mit N2.NUM au lieu de N2.num
12 sept. 2009 à 13:59