Innerhalb des gleichen Sub-Selects, müssen die Ausdrücke wiederholt werden.
Die vergebenen Namen (in deinem Fall "Preis" = SQL-Name und PREIS00001 = System-Name) können nur außerhalb des Sub-Selects verwendet werden (so ist nun mal die Regel).

Ein Sub-Select kann bestehen aus:
SELECT, FROM, WHERE, GROUP BY, HAVING

Der Order By gehört zum Full- und nicht zum Sub-Select, deshalb können die vergebenen Namen dort verwendet werden.

Wenn Du den Ausdruck artpreis3(adkto,t02.tetenr) im Group By wiederholst, sollte es funktionieren.

Wie werden eigentlich die beiden Dateien verknüpft. M.E. generierst Du mit der Abfrage ein kartesisches Produkt, jeder Satz aus jeder Tabelle mit jedem Satz aus jeder Tabelle.

Birgitta