2 шага:
UPDATE EOD
SET EOD.Value = REALTIME.Value
FROM EOD
INNER JOIN REALTIME
ON EOD.Symbol = REALTIME.Symbol
AND EOD.Date = REALTIME.Date
INSERT INTO EOD ( Symbol , Date , Value )
SELECT REALTIME.Symbol
, REALTIME.Date
, REALTIME.Value
FROM EOD
LEFT JOIN REALTIME
ON EOD.Symbol = REALTIME.Symbol
AND EOD.Date = REALTIME.Date
WHERE EOD.Symbol IS NULL
AND EOD.Date IS NULL
Это предполагает, что у вас есть какая-то уникальность (Символ, Дата) в обеих таблицах.
Еще один комментарий заключается в том, что включение дат проблематично, особенно с учетом компонента времени. Я бы посоветовал вам CAST или CONVERT всех ваших значений даты в нечто, исключающее часть времени. Я бы использовал CONVERT (varchar (11), EOD.Date, 106), чтобы преобразовать дату во что-то без компонента даты. Смотрите ниже:
UPDATE EOD
SET EOD.Value = REALTIME.Value
FROM EOD
INNER JOIN REALTIME
ON EOD.Symbol = REALTIME.Symbol
AND CONVERT(varchar(11), EOD.Date, 106) = CONVERT(varchar(11), REALTIME.Date, 106)
INSERT INTO EOD ( Symbol , Date , Value )
SELECT REALTIME.Symbol
, CONVERT(varchar(11), REALTIME.Date, 106)
, REALTIME.Value
FROM EOD
LEFT JOIN REALTIME
ON EOD.Symbol = REALTIME.Symbol
AND CONVERT(varchar(11), EOD.Date, 106) = CONVERT(varchar(11), REALTIME.Date, 106)
WHERE EOD.Symbol IS NULL
AND EOD.Date IS NULL