Bonjour,
Je vous expose la situation avant de vous donner la problématique :
J'ai un traitement qui prend des fichiers en entrée. Pour chaque fichier traité j’insère des données dans une table et je flague un champ traitement à "R". Si un fichier passe 2 fois par erreur j'insère quand même les données mais je flague le champ traitement à "D" pour savoir que ce fichier a déjà été traité.
Mon serveur est tombé parce que je lui ai donné trop de fichiers en entrée! Et je me retrouve avec des données dans ma table qui ne sont pas correcte : j'ai des enregistrement à "D" sans pendant à "R".
Mes enregistrements sont uniques relativement à 6 champs.
Je cherche à écrire une requête SQL qui me permette d'identifier tous les enregistrements qui sont à "D" mais qui n'existent pas à "R" dans ma table en fonction de mes 6 champs clé.
J'ai essayé ce genre de chose mais sans résultat :
Est-ce que quelqu'un peut m'aider a construire correctement cette requête ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 select * from ( (SELECT champ1, champ2, champ3, champ4, champ5, champ6, champ7, champ8, traitement FROM maTable WHERE date_traitement='2013/06/15') a inner join (SELECT champ1, champ2, champ3, champ4, champ5, champ6, champ7, champ8, traitement FROM maTable WHERE date_traitement='2013/06/15') b on a.champ1 = b.champ1 and a.champ2 = b.champ2 and a.champ3 = b.champ3 and a.champ4 = b.champ4 and a.champ5 = b.champ5 and a.champ6 = b.champ6 and a.champ7 = b.champ7 and a.champ8 = b.champ8 ) where a.traitement='R' and b.traitement='D';
Merci d'avance pour votre aide.







Répondre avec citation
Partager