Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2007, 14h42   #1
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
Par défaut batir une requete

Soit la table suivante

Code :
1
2
3
4
5
6
 
ID  Type   Prix   Code
 1    1       10      0
 2    1       12      0
 3    2       25      0
 4    2       15      0
Je veux faire un UPDATE table SET code=1 pour les enregistrements ayant le prix le plus grand dans chaque categorie de type.
Ce qui donnera

Code :
1
2
3
4
5
6
 
ID  Type   Prix   Code
 1    1       10      0
 2    1       12      1
 3    2       25      1
 4    2       15      0
à tous
Merci
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 16h09   #2
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt...

il doit y avoir plus simple, mais moi, je n´y arrive pas ..

J´arrive en passant par une procedure...

Code :
1
2
3
4
5
6
7
8
9
10
DELIMITER $$
DROP PROCEDURE IF EXISTS f_up $$
CREATE PROCEDURE f_up()
BEGIN
  CREATE TEMPORARY TABLE temp (id_t int);
  INSERT INTO temp SELECT a.id FROM aqaq a WHERE a.prix=(SELECT max(b.prix)
              FROM aqaq b WHERE b.typess=a.typess) ;
 UPDATE aqaq SET code=1 WHERE id IN (SELECT * FROM temp);
END $$
DELIMITER ;
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 17h23   #3
Membre régulier
 
Inscription : janvier 2004
Messages : 228
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 228
Points : 70
Points : 70
Merci beaucoup !
pierre50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h37.


 
 
 
 
Partenaires

Hébergement Web