Vamos a ver si te he entendido bien....
La clave de la tabla está formada por los campos A y B ¿No es así?
Pues entonces sería algo así:
El problema es que al existir varias veces el registro A, te va a dar el mismo codigo B varias veces, osea, clave duplicada.
Por ejemplo:
A=1, B=2 => B=A-1 -> 0
A=1, B=3 => B=A-1 -> 0 (independientemente de B)
¿Para que quieres hacer eso?