@kitvb1
Tut mir Leid, aber das ist sowas von falsch:
Sortierung des Begriffes "trim(..." fehlt, da ja hier das letzte ermittelt werden soll und nicht der letzte Artikel.
Ausserdem werden durch char(Datum) und char(Zeit) Vornullen entfernt (siehe auch oben), was zur falschen Sortierung führt.
Mein Vorschlag war ja DIGITS zu nehmen und TRIM zu entfernen:

select Lagerort, Artikel, max(digits(Datum) || digits(Zeit) || char(Suffix))
where Lagerort = 'LO' and Datum between 20080901 and 20080930
Group by Lagerort, Artikel