mip hat geschrieben:hat man in a 1000 belege und in b ebenfalls macht das schon 1Mio Vergleiche.
Das stimmt ja nicht.
Es wird ja für jeden Beleg einzeln geprüft. Das heisst, du hast einen select für einen Beleg in der VBAK und machst dazu einen Select in der VBPA. Ausserdem passt "Vergleich" bei einer Datenbankabfrage nicht so ganz. Denn dann gehst du von einem "Full table scan" aus.
also: durchlaufe alle Belege in der VBAK, bis du meinen Beleg gefunden hast. Durchlaufe dann alle Belege in der VBPA bis du meinen Beleg gefunden hast. So ist das ja aber nicht. Mit der Belegnummer machst du einen direkten Zugriff. Schneller gehts dann nicht.
@index: Dein join funktioniert leider nicht...! Denn du prüfst mit dem Join ja nicht, ob der Eintrag VE vorhanden ist, oder nicht, sondern selektierst stattdessen alles, was nicht VE ist; also WE, AG, RE, RG, Z1, Z2, SP etc... Egal, ob VE zum Beleg vorhanden ist, oder nicht.