These types of problems are much easier to solve when you provide the DDL and example data.
Try this example:
DECLARE @target TABLE (date DATE, ID int)
DECLARE @s1 TABLE (date DATE, ID INT, score INT)
DECLARE @s2 TABLE (date DATE, ID INT, score INT)
DECLARE @s3 TABLE (date DATE, ID INT, score INT)
INSERT INTO @s1 (date, ID, score) VALUES
('1900-01-01', 1, 5),('1900-01-01', 2, 1),('1900-01-01', 3, 3),('1900-01-01', 4, 5),('1900-01-01', 5, 1)
INSERT INTO @s2 (date, ID, score) VALUES
('1900-01-02', 1, 3),('1900-01-02', 2, 5),('1900-01-02', 3, 1),('1900-01-02', 4, 3),('1900-01-02', 5, 5)
INSERT INTO @s3 (date, ID, score) VALUES
('1900-01-03', 1, 1),('1900-01-03', 2, 3),('1900-01-03', 3, 5),('1900-01-03', 4, 1),('1900-01-03', 5, 3)
;WITH updateFrom AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY score DESC) AS seq
FROM (
SELECT *
FROM @s1
UNION ALL
SELECT *
FROM @s2
UNION ALL
SELECT *
FROM @s3
) a
)
INSERT INTO @target (date, ID)
SELECT date, ID
FROM updateFrom
WHERE seq = 1
SELECT *
FROM @target