Steve,
I think that I must have clicked on the GENMOD procedure rather than the GLM procedure in the SAS documentation. I thought it was a bit odd that there would be an OFFSET parameter in GLM. I should have double-checked. The GLIMMIX procedure also supports an OFFSET parameter specification. However, not everyone has GLIMMIX installed.
If GLIMMIX is available, the code which I showed previously would work directly with only a change of the procedure name from GLM to GLIMMIX. If GLIMMIX is not available and GENMOD is employed, then one would need to remove the option S from the model statement.
Thus, we would write either:
proc glimmix data=mydata;
class x1 x2;
model y = x1 x2 x3 / offset=z s;
run;
or
proc genmod data=mydata;
class x1 x2;
model y = x1 x2 x3 / offset=z;
run;
Dale