Nochmal zum Verständnis:
In Deiner Bestell-Datei sind für B1BNR01 mehrere gleiche Werte. In B1BNR02 sind für den gleichen B1BNR01-Schlüssel-Wert mehrere verschiedene Werte und u.a. ist auch mindestens 1x der Wert 0 zu finden (kein NULL-Wert?!).
Du versuchst für einen bestimmten Schlüssel den Satz mit der 0 zu finden?

Sofern es das ist, das Du das willst, kann es mit SQL ganz einfach gelöst werden (da braucht man auch kein verschachteltes Sub-Select)

Code:
Select Fld1, Fld2, ... FldN
From YourTable
Where B1BNR01 = 'YOURVALUE' and B1BNR02 = 0;
Mir ist übrigens auch schleierhaft, warum Du deinen Key nicht einfach um ein zweites Schlüssel-Feld erweiters (bzw. eine LF oder besser einen SQL Index anlegst mit 2 Schlüssel-Feldern. Dann könntest Du den Satz auch mit native I/O direkt greifen.

Solltest Du stattdessen tatsächlich eine Rekursion wollen, d.h. mit dem in B1BNR02 gefundenen Wert muss ein Zugriff auf B1BNR02 erfolgen und der letzte Wert in B1BNR02 ermittelt werden, könnte die Abfrage evtl. wie folgt aussehen (Mindest-Release 7.1)

Code:
Select *
  From YOURTABLE
  Start With B1BNR01 = 'YOURVALUE'
  Connect By Prior B1BNR01 = B1BNR02
  Order By Level Desc
  Fetch First Row Only;
Birgitta