Her bir tuş grup içindeki kayıt adedini 500'e çıkartma

Aşağıdaki kod ile tüm tuş gruplarındaki kayıt adetleri 500’e çıkartılır. Eğer mevcutta daha fazla kayıt varsa yeni kayıt eklenmez.

execute block as
declare variable xposgrup_k type of k;
declare variable xadet type of tamsayi;
declare variable xsira type of tamsayi;
begin
   for select k from posgrup into :xposgrup_k do 
   begin
	   -- son sıra noyu ve tuş adedini bul   
	   select max(sira),500-(select count(*) from posgruptus where posgrup_k=:xposgrup_k) 
	   from posgruptus where posgrup_k=:xposgrup_k into :xsira, :xadet;

       -- hiç kayıt yoksa sıra no 1 yap kayıt varsa bir sonraki numrayı al
	   if (xsira is null) then 
		  xsira=1;
	   else
		  xsira=xsira+1;
	   
	   while (xadet > 0) do
	   begin
		  insert into posgruptus(posgrup_k,sira) values(:xposgrup_k,:xsira);
		  xsira = xsira+1;
		  xadet = xadet-1;
	   end      
	end
end