So ganz trivial ist das nicht, da:
sofern das Datum 00.00.0000 tatsächlich in dem Feld steht es sich um kein echtes Datumsfeld handelt, sondern entweder um ein alphanumerisches oder ein numerisches Feld (mit entsprechender Aufbereitung).
Es könnten mehrere Sätze pro Index Null enthalten.
Es könnten mehrere Sätze mit Datum pro Index vorhanden sein.
Vermutlich soll dann das kleineste oder größte Datum (und nicht irgendein Datum) übernommen werden. Hier kommt erschwerend hinzu, dass das numerische bzw. alphanumerische Datum zunächst gedreht werden muss, um den kleinsten oder größten Wert zu ermitteln.

Die Schritte sind also die folgenden:
1. Für die einzelnen Indices muss zunächst das kleinste Datum, das nicht *ZEROS ist ermittelt werden. (geht man davon aus, dass es sich bei dem Datum um ein numerisches Datum in der Form TTMMJJJJ handelt, sieht das Select-Statement wie folgt aus:

Code:
Select Index,  
       Min(Substr(Digits(Numdate), 5) concat
          Substr(Digits(NumDate), 3, 2) concat
          Substr(Digits(NumDate), 1, 2))
From MyTable
Where NumDate <> 0
Group By Index
Diese "Zwischen-Tabelle" muss wieder mit der Original-Tabelle/Datei verknüpft werden, um das numerische Datum, das anstelle der *Zeros-Datums-Werte in die Datei übernommen werden soll.

Das Ergebnis muss nun im Update-Statement verwendet werden.
Setzt man alles zusammen, sieht das Ganze etwa so aus:
Code:
Update MyTable a
   set a.NumDate = (Select distinct NumDate
                       from (Select z.index, 
                                    Min(Substr(Digits(z.Numdate), 5)    concat 
                                        Substr(Digits(z.NumDate), 3, 2) concat 
                                        Substr(Digits(z.NumDate), 1, 2)) xDate
                                from MyTable z
                                Where z.NumDate <> 0
                                Group By z.Index) x
                             Join MyTable y on x.Index = y.Index
                                           and xDate   = Substr(Digits(y.Numdate), 5)    concat 
                                                         Substr(Digits(y.NumDate), 3, 2) concat 
                                                         Substr(Digits(y.NumDate), 1, 2)
                       Where a.Index = x.Index)
where 	  a.NumDate = 0;
Birgitta