Para ser un trigger no veo ninguna tabla Inserted o Deleted, entonces no veo por que la necesidad de tal trigger.
if (g.tipotransaccion COLLATE SQL_Latin1_General_CP1_CI_AS <> c.codigo)
Ese código ya está fuera del select, de ahí que la referencia a g.tipotransaccion está fuera de contexto.