Tuve el mismo problema que el cartel inicial. Mi caso de uso fue el siguiente: Una tabla contenía la Fecha y la Hora de un evento deportivo. Debido a que estoy obteniendo información de diferentes fuentes, cambié el esquema de la base de datos, así que tuve un valor int para la hora y la fecha (o tal vez la fecha) para la fecha del evento deportivo.
Esta es mi pregunta:
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;
algunas explicaciones: Hay que darle la subconsulta MatchStartTime un nombre diferente de otro modo se obtiene una advertencia/error de SQL Server. También tuve que agregar MatchId, así que sabía que estaba actualizando la coincidencia correcta. El SportTypeId se usa para separar diferentes deportes en la base de datos.
Gracias a @astander por orientarme en la dirección correcta. Sin su publicación habría luchado un poco más para terminar con esta solución.
¿Está garantizado que solo hay 1 ciudad en poi para un trip_guid (o espera que lo haga de alguna manera)? –
Hay al menos 2 citas. La idea es poner todas las citas en un campo. – itdebeloper
Su ejemplo funciona en Oracle. Para SQL Server, las otras respuestas son aplicables. – Monstieur