Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 04/07/2011, 10h12   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 135
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 135
Points : 32
Points : 32
Par défaut Suppression date inférieur à la date MAX

Bonjour,

Suite à une anomalie, il faut que je supprime des doublons d'une table dont les dates sont inférieures à la date MAX, mais je n'arrive pas à écrire cette requête de suppression.

Voici un exemple de mes données :

key date
1 21/01/2011
2 12/03/2011
3 16/06/2011
4 21/01/2011
5 16/06/2011

Merci pour votre aide
TOF
drumtof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 11h59   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
regarde du coté de HAVING et GROUP BY
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/07/2011, 15h49   #3
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 135
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 135
Points : 32
Points : 32
merci oraFrance mais c'était un poil plus compliquer dans mon cas et surtout pour mes compétences lol ...

voici ma solution :

Code :
1
2
3
4
5
6
7
8
9
10
delete ma_table
where ma_table.clé in ( select ma_table.clé from (
SELECT ma_table.valeur,ma_table.clé
from ma_table
minus
SELECT ma_table.valeur, max(ma_table.clé)
from ma_table
group by ma_table.valeur
))
drumtof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h04   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Difficile d'être sûr à 100% que ce soit ce que vous vouliez car l'exemple plus haut est un peu léger et ne reflète pas votre besoin. Néanmoins, que donne ceci :
Code :
1
2
3
4
DELETE ma_table mt1
 WHERE mt1.clé < (SELECT max(mt2.clé)
                    FROM ma_table mt2
                   WHERE mt2.valeur = mt1.valeur)
__________________
Email : http://scr.im/waldar
Waldar 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 23h08.


 
 
 
 
Partenaires

Hébergement Web