When running a model in PROC GLM with an interaction term, if you indicate the ss3 option you will likely see p-values for the same variable in the Type III Sum of Squares output that are different from the p-values in the Estimate output. The code below uses the elemapi2 dataset.
proc glm data="c:sasregelemapi2"; class mealcat; model api00=some_col mealcat some_col*mealcat /solution ss3; run; quit; Source DF Type III SS Mean Square F Value Pr > F some_col 1 36366.366 36366.366 7.70 0.0058 mealcat 2 2012065.492 1006032.746 212.95 <.0001 some_col*mealcat 2 97468.169 48734.084 10.32 <.0001 Standard Parameter Estimate Error t Value Pr > |t| Intercept 480.9461176 B 12.13062708 39.65 <.0001 some_col 1.6599700 B 0.75190859 2.21 0.0278 mealcat 1 344.9475807 B 17.05743173 20.22 <.0001 mealcat 2 105.9176024 B 18.75449819 5.65 <.0001 mealcat 3 0.0000000 B . . . some_col*mealcat 1 -2.6073085 B 0.89604354 -2.91 0.0038 some_col*mealcat 2 0.5336362 B 0.92720142 0.58 0.5653 some_col*mealcat 3 0.0000000 B . . .
We can see that the p-value for some_col in the Type III SS section is 0.0058, while the same variable has a p-value of 0.0278 in the Estimate section. The reason that these two differ is that they correspond to two different tests due to the interaction term. The Type III SS section tests the overall effect of some_col while the Estimate section tests the simple effect of some_col when mealcat is at the level of the reference group.
To make this clear, we can look at the SAS code that reproduces the Type III SS test using the estimate statement:
proc glm data=ats.elemapi2; class mealcat ; model api00= mealcat some_col mealcat*some_col /solution ss3; estimate "overall effect" some_col 3 some_col*mealcat 1 1 1 /divisor=3; run; quit; Source DF Type III SS Mean Square F Value Pr > F mealcat 2 2012065.492 1006032.746 212.95 <.0001 some_col 1 36366.366 36366.366 7.70 0.0058 some_col*mealcat 2 97468.169 48734.084 10.32 <.0001 Standard Parameter Estimate Error t Value Pr > |t|overall effect 0.96874585 0.34916249 2.77 0.0058 Standard Parameter Estimate Error t Value Pr > |t| Intercept 480.9461176 B 12.13062708 39.65 <.0001 mealcat 1 344.9475807 B 17.05743173 20.22 <.0001 mealcat 2 105.9176024 B 18.75449819 5.65 <.0001 mealcat 3 0.0000000 B . . . some_col 1.6599700 B 0.75190859 2.21 0.0278 some_col*mealcat 1 -2.6073085 B 0.89604354 -2.91 0.0038 some_col*mealcat 2 0.5336362 B 0.92720142 0.58 0.5653 some_col*mealcat 3 0.0000000 B . . .
Here is a more mathematical way of looking at this. Our model has the following structure:
api00 = b_0 + b_1*mealcat_1 + b_2*mealcat_2 + b_3*some_col + b_4*mealcat_1*some_col + b_5*mealcat_2*some_col
The p-value of .0278 corresponds to the test of b_3 = 0. The null hypothesis here is that the effect of some_col is zero when mealcat = 3. The p-value of .0058 corresponds to the test of (b_3 + (b_3 + b_4) + (b_3 + b_5)) /3 = 0. That is the overall effect of some_col across all levels of mealcat.