Bonjour,

Je suis novice dans le domaine (il vaut mieux preciser !)

La requete qui me pose probleme concerne deux tables distinctes: original et revised
Dans la premiere des donnees d'une manip scientifique (des moniteurs a neutrons) arrivent en temps reel
et dans la deuxieme on place les eventuelles correction qui ont ete apportee a posteriori
Chaque enregistrement a un timestamp unique. Exemple:

timestamp-------------original
2009-01-29 02:30:00-----780
2009-01-29 02:31:00-----799
2009-01-29 02:32:00-----783
2009-01-29 02:33:00-----632
2009-01-29 02:34:00-----null
timestamp------------revised
2009-01-29 02:31:00-----785
2009-01-29 02:33:00-----null
Je cherche une requete qui me permette de recuperer les valeurs originales, en les remplacant
par les revisees si un timestamp correspond dans la table revised, et que les "null" soient bien pris en compte
La requete doit donc me renvoyer:

2009-01-29 02:30:00---780
2009-01-29 02:31:00---785
2009-01-29 02:32:00---783
2009-01-29 02:33:00---null
2009-01-29 02:34:00---null
J'ai essayer ce type de requete:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT original.timestamp, COALESCE(revised, original) AS revoriginal
FROM `original`
LEFT JOIN `revised` ON original.timestamp = revised.timestamp
WHERE original.timestamp > '2009-01-29 02:30:00'
Ce qui marche sauf pour les valeurs "null" de revised... car COALESCE cherche la premiere valeur non "null" de la table
Je precise qu'il n'est pas possible de remplacer ces valeurs null par des 0.

Voila j'espere avoir ete clair !?

Merci d'avance a tous ceux qui voudront bien se pencher sur le probleme.