OVH Cloud OVH Cloud

Problème avec MIN

1 réponse
Avatar
Canard Furieux
Salut,

D'abord je suis un bille en SQL donc tapez pas trop fort.
J'utilise mysql 4.0

Je veux obtenir pour chaque numéro, le data qui à l'ordre minimum.
Je dois donc avoir 2 fois TUTU car ils sont de type 1, sont de 2 numéro
différents et ont un ordre 0 donc minimum.
Je doit forcement me planter quelque part...

select
*, min( ordre ) as o
from
test
where
type = '1'
group by numero having ordre = o

Me donne:
+------+------+--------+-------+
| TYPE | DATA | NUMERO | ORDRE |
+------+------+--------+-------+
| 1 | TUTU | 1 | 0 |
+------+------+--------+-------+
CREATE TABLE `test` (
`TYPE` char(1) NOT NULL default '1',
`DATA` varchar(100) NOT NULL default '',
`NUMERO` smallint(5) unsigned NOT NULL default '0',
`ORDRE` smallint(5) unsigned NOT NULL default '0'
) TYPE=MyISAM;

INSERT INTO `test` VALUES ('0', 'TOTO', 0, 0);
INSERT INTO `test` VALUES ('1', 'TATA', 0, 4);
INSERT INTO `test` VALUES ('1', 'TUTU', 0, 0);
INSERT INTO `test` VALUES ('1', 'TETE', 0, 5);
INSERT INTO `test` VALUES ('1', 'TUTU', 1, 0);
INSERT INTO `test` VALUES ('1', 'TYTY', 0, 1);

1 réponse

Avatar
Erwan
Salut,



Salut, j'ai fait le test avec Postgres SQL, il est donc possible que ça ne marche
pas avec mysql. Voici la requête :

SELECT data, ordre
FROM test
WHERE type='1' AND ordre=(SELECT min(ordre) FROM test WHERE type='1');

Tu obtient bien le résultat :
data|ordre
tutu|0
tutu|0

Il doit être possible d'écrire cette requête sans requête imbriquée

--
Message monitoré par axinews : http://www.axinews.com