Requete mysql minimum
Ptesoleil
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une requete à faire en mysql mais je ne sais pas comment m'y prendre.
Je dois trouver le minimum et le maximum d'un champ KMValue: jusque là pas de probleme. Cependant j'ai deux tables KM : c'est à dire KMP et KMS donc avec chacun un champ KMPValue et KMSValue. Comment je peux trouver le minimum sur ces deux champs (aucune jointure directe n'est possible) ?
Et ensuite, il faut que je trouve le second miminum?
Merci de votre aide.
j'ai une requete à faire en mysql mais je ne sais pas comment m'y prendre.
Je dois trouver le minimum et le maximum d'un champ KMValue: jusque là pas de probleme. Cependant j'ai deux tables KM : c'est à dire KMP et KMS donc avec chacun un champ KMPValue et KMSValue. Comment je peux trouver le minimum sur ces deux champs (aucune jointure directe n'est possible) ?
Et ensuite, il faut que je trouve le second miminum?
Merci de votre aide.
A voir également:
- Requete mysql minimum
- Mysql community server - Télécharger - Bases de données
- Scream age minimum - Forum Cinéma / Télé
- La casa de papel age minimum ✓ - Forum Minecraft
- Age Casa de papel ✓ - Forum Cinéma / Télé
- Game of thrones âge minimum ✓ - Forum Cinéma / Télé
7 réponses
Bonjour Ptesoleil,
Le code suivant devrait faire ce que tu veux
Tu devrais avoir comme résultat deux nombres triés par ordre ascendant.
Pour le maximum, le code devrait être le suivant
Dans ce cas ci tu auras deux nombres triés par ordre descendant.
A plus
Le code suivant devrait faire ce que tu veux
SELECT LeMin FROM (SELECT Min(KMPValue) AS LeMin FROM KMP UNION SELECT Min(KMSValue) AS LeMin FROM KMS) ORDER BY LeMin ASC;
Tu devrais avoir comme résultat deux nombres triés par ordre ascendant.
Pour le maximum, le code devrait être le suivant
SELECT LeMax FROM (SELECT Max(KMPValue) AS LeMax FROM KMP UNION SELECT Max(KMSValue) AS LeMax FROM KMS) ORDER BY LeMax DESC;
Dans ce cas ci tu auras deux nombres triés par ordre descendant.
A plus
Bonjour,
Un fonction de ce style correspond-t-elle a ce que tu cherche ?
Select if(min(p.kmpValue)<min(s.kmsValue),min(p.kmpValue),min(s.kmsValue)) as minimum from KMP as p, KMS as s;
Un fonction de ce style correspond-t-elle a ce que tu cherche ?
Select if(min(p.kmpValue)<min(s.kmsValue),min(p.kmpValue),min(s.kmsValue)) as minimum from KMP as p, KMS as s;
Cette requete permet d'afficher le deuxieme minimum c'est ce que je voulais mais peux tu m'expliquer comment elle fonctionne? et comment dans cette meme requete puis-je afficher aussi le premier minimum?
Elle Affiche le Deuxieme minimum? j'ai du faire une erreur alors :s , elle devrait afficher la plus petite valeur existante ...
es ce que tu peux decrire totalement tes 2 tables? j'ai du mal comprendre
( j'ai interprété comme çà :
Table KMP: plein de champs dont kmpValue
table KMS : plein de champs dont KMSValue, et je croyait que ton but était d'obtenir la plus petite valeur d'entre ces 2 champs .. c'est pas çà ? )
es ce que tu peux decrire totalement tes 2 tables? j'ai du mal comprendre
( j'ai interprété comme çà :
Table KMP: plein de champs dont kmpValue
table KMS : plein de champs dont KMSValue, et je croyait que ton but était d'obtenir la plus petite valeur d'entre ces 2 champs .. c'est pas çà ? )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si c'est bien ca, tu as bien compris. 2 tables : KMP et KMS avec chacune plusieurs champs dont dans la première KMPValue et dans la deuxième KMSValue. Mais cela n'affiche pas la plus petite valeur. Dans mes tables j'ai vérifié et la plus petite valeur est dans KMP et cela m'affiche celle de KMS qui correspond aux dieuxieme minimum).
Ok merci beaucoup
Mais j'ai une autre question :
KMPValue et KMSValue sont des varchars ; seulement pour faire des opérations je dois les passer en float.
J'ai fait ceci :
(SELECT KMPValue AS Value
FROM KMP
UNION
SELECT KMSValue AS Value
FROM KMS
ORDER BY 0+Value DESC
LIMIT 1);
Dans les deux tables la plus grande valeur est : 898 et ensuite 9.9 . Avec cette requete, j'obtiens 1000! Si je ne mets pas 0+Value, j'obtiens 9.9. Pourquoi cette arrondi à 1000 et comment dois je resoudre le probleme?
Mais j'ai une autre question :
KMPValue et KMSValue sont des varchars ; seulement pour faire des opérations je dois les passer en float.
J'ai fait ceci :
(SELECT KMPValue AS Value
FROM KMP
UNION
SELECT KMSValue AS Value
FROM KMS
ORDER BY 0+Value DESC
LIMIT 1);
Dans les deux tables la plus grande valeur est : 898 et ensuite 9.9 . Avec cette requete, j'obtiens 1000! Si je ne mets pas 0+Value, j'obtiens 9.9. Pourquoi cette arrondi à 1000 et comment dois je resoudre le probleme?
Bonjour,
Tu peux utiliser l'instruction CAST, le code ci-dessous devrait t'aider
L'instruction CAST va convertir ta variable en un nombre décimal de 5 chiffres et 2 chiffres après la virgule.
A plus
Tu peux utiliser l'instruction CAST, le code ci-dessous devrait t'aider
(SELECT CAST(KMPValue as DECIMAL(5,2)) AS Value FROM KMP UNION SELECT CAST(KMSValue as DECIMAL(5,2)) AS Value FROM KMS ORDER BY Value DESC LIMIT 1);
L'instruction CAST va convertir ta variable en un nombre décimal de 5 chiffres et 2 chiffres après la virgule.
A plus