J'ai deux tables qui sont mises à jour à presque exactement en même temps - j'ai besoin de rejoindre la colonne datetime.SQL - Comment rejoindre des colonnes similaires (non exactes)
J'ai essayé ceci:
SELECT *
FROM A, B
WHERE ABS(DATEDIFF(second, A.Date_Time, B.Date_Time)) = (
SELECT MIN(ABS(DATEDIFF(second, A.Date_Time, B2.Date_Time)))
FROM B AS B2
)
Mais il me dit:
colonnes multiples sont spécifiées dans une expression agrégée contenant une référence externe. Si une expression en cours d'agrégation contient une référence externe, cette référence externe doit être la seule colonne référencée dans l'expression.
Comment puis-je joindre ces tables?
Pourriez-vous peut-être expliquer comment ce code fonctionne? Je n'ai jamais vu beaucoup de ces constructions auparavant. –
@BlueRaja - J'ai développé ma réponse pour fournir plus de détails. – Thomas
J'ai fini par remplacer «MIN» par «TOP 1 ... ORDER BY Date_Time» dans ma requête, mais cette réponse m'a appris quelque chose de nouveau et m'a aidé avec un problème connexe (trouver toutes les lignes dans lesquelles une colonne particulière a changé avec par rapport à la rangée précédente, si elle est ordonnée par date-heure). Je vous remercie! –