Wie wär's damit:
Code:
With x as select Rank() Over(Partition By Artikel order By Artikel, Charge Desc) lfd
                  artikel, charge 
             from datei 
            group by Artikel, Charge 
 Select *
   From X  
  Where Lfd between 1 and 3;
ggf. ist noch eine zusätliche Common Table Expression erforderlich wegen des GROUP BYs

Birgitta