0

Doppelte Datensätze löschen mit mehreren Bedingungen

Moin,

habe 10000 Datensätze von Material, wobei ich die doppelten Datensätze löschen möchte. Die Bedindungen sind:
Wenn zwei gleiche Datensätze gefunden wurden, soll der gelöscht werden, welcher: In dem Datumsfeld "Letzte Änderung": den älteren Eintrag hat. Und der Datensatz darf in dem Textfeld "Nummer" als ersten Buchstaben kein "xyz" verwendet hat. Um doppelte Datensätze finden kann die "Herstellernummer" verwendet werden. Dies ist mein Versuch:

 

do as server
for i in select Material where Herstellernummer != null do
let h := i.Herstellernummer;
let h2 := item(split(h, ""), 0);
if contains(h, "?") = false then
if cnt(select Material where Herstellernummer = h) > 1 then
let t := false;
let l := last(select Material where Herstellernummer = h);
let e := first(select Material where Herstellernummer = h);
let a := l.Nummer;
let b := lower(item(split(a, ""), 0));
let ea := e.Nummer;
let eb := lower(item(split(b, ""), 0));
if contains(b, "x") or contains(b, "y") or contains(b, "z") then
if l.Nr != e.Nr then delete e end
else
if contains(eb, "x") or contains(eb, "y") or contains(eb, "z") then
if l.Nr != e.Nr then delete l end
else
if l.Nr != e.Nr then
if number(l.'LetzteÄnderung') > number(e.'LetzteÄnderung') then
delete e
else
if number(l.'LetzteÄnderung') < number(e.'LetzteÄnderung') then
delete l
end
end
end
end
end
end
end
end
end

Aber es klappt leider nicht

Antwort

null