Das bedeutet, dass dein Datum über mehrere Sätze eben nicht eindeutig ist.
Ggf. hilft dir einfach "Max" oder "Min":

update mytable a
set a.mydate= (select min(b.mydate) from mytable b
where a.index = b.index and b.mydate <> 0)
where a.mydate=0