|
|
|
|
Bonjour,
je cherche depuis quelques jours une solution pour faire une requete.
Il s'agit dans le requête de supprimer dans une table toutes les lignes ou la date (en colonne) est antérieure à 4ans sauf si elle est la dernière de son année.
Par exemple
1 enregistrement contient la date: 12/12/86
un autre contient la date 30/12/86
Ca correspond à plus de 4 annnées passées, je supprime la ligne 1 mais je garde la ligne 2.
Bon, a mon avis il faut utiliser un curseur.
car avec cette requete ca ne marche pas :
DELETE FROM ma_table
WHERE trunc(ma_date) < add_months(TRUNC(sysdate),-48)
AND trunc(ma_date) <> ( select max(trunc(R.ma_date))
FROM ma_table R
GROUP BY TO_CHAR(R.ma_date,'yyyy')
);
Le probleme c'est que le select me sort toutes les dates maximale pour chaque année et non pas celle de l'année sur laquelle je veux faire le control avant de apsser à l'autre
Merci pour votre aide potentielle
Bonjour,
DELETE FROM ma_table WHERE trunc(ma_date) < add_months(TRUNC(sysdate),-48) AND trunc(ma_date) <> ( select max(trunc(R.ma_date)) FROM ma_table R WHERE TO_CHAR(ma_date,'yyyy') = TO_CHAR(R.ma_date,'yyyy')) J'ai pas testé, à toi de voir. A plus On se donne des souvenirs quand on se quitte. (Marcel Achard) |