SELECT DISTINCT

Im Gegensatz zu SELECT SINGLE geht es hier nicht darum, nur einen bestimmten Satz zu bekommen, der den WHERE Kriterien entspricht, sondern um alle Sätze zu bekommen, die den WHERE Kriterien entsprechen, aber deren ausgewählte COLUMNS unterschiedliche Werte haben (Vektor).

Es entspricht also einem GROUP BY bzw. einem nachfolgenden DELETE DUPLICATES auf der nachfolgenden internen Tabelle.

Bei DELETE DUPLICATES ist aufzupassen, dass die Tabelle entsprechend sortiert ist.

DELETE ADJACENT compares the adjacent records before deletion by comparing given fields, hence you have to sort internal table according to them before deletion.

select distinct
  vbtyp,
  kunnr
  into table @data(lt_kunnr)
  from vbak
  order by kunnr, vbtyp.
DELETE ADJACENT DUPLICATES FROM LT_KUNNR COMPARING KUNNR VBTYP.