J'ai eu le même problème que l'affiche initiale. Mon cas d'utilisation était le suivant: Une table contenait la date et l'heure d'un événement sportif. Parce que j'obtiens des informations de différentes sources, j'ai changé le schéma de la base de données de sorte que j'avais une valeur int pour l'heure et la date (ou peut-être juste la date) pour la date de l'événement sportif.
Ceci est ma requête:
UPDATE Matches
SET StartTime= MatchTime.ThisMatchStartTime
FROM Matches AS M
INNER JOIN (SELECT CONVERT(int, CONVERT(varchar, DATEPART(Hour, MatchDate)) + RIGHT('00' + CONVERT(varchar, DATEPART(Minute, MatchDate)),2)) AS ThisMatchStartTime, MatchId
FROM [Matches]
WHERE SportTypeId=16) AS MatchTime ON M.MatchId=MatchTime.MatchId
WHERE StartTime > 2400
AND SportTypeId = 16;
Quelques explications: Vous devez donner la sous-requête MatchStartTime un autre nom, sinon vous obtenez un avertissement/erreur de SQL Server. J'ai aussi dû ajouter MatchId pour savoir que je mettais à jour le bon match. SportTypeId est utilisé pour séparer différents sports dans la base de données.
Merci à @astander de m'avoir orienté dans la bonne direction. Sans son poste, je me serais battu un peu plus pour aboutir à cette solution.
Y a-t-il une garantie d'avoir seulement 1 ville en poi pour un trip_guid (ou est-ce que vous vous attendez à ce que cela se passe pour vous d'une manière ou d'une autre)? –
Il y a au moins 2 cites. L'idée est de mettre toutes les cités dans un seul domaine. – itdebeloper
Votre exemple fonctionne dans Oracle. Pour SQL Server, les autres réponses sont applicables. – Monstieur