I'm going to assume you are using a BARCHARTPARM statement, with ERRORUPPER and ERRORLOWER and SEGMENTLABELTYPE. The answer to your question depends on the behavior you want. If you want the value to always be right below the error bar, then do the following:
Remove the ERRORUPPER, ERRORLOWER, and SEGMENTLABELTYPE options.
Add a HIGHLOWPLOT after the BARCHARTPARM, assigning the upper and lower error variable to the plot, adding HIGHCAP=serif, LOWCAP=serif, and the bar value variable to the LOWLABEL option.
If your goal is to keep the value in the center of the bar, unless the error bar "pushes" it down, you would need to do the following:
Create a temporary data set that will add a numeric column for the Y location for the labels (let's call it LabelY) and a string column for text anchor positions (let's call it POS) to the original data. In the data step, the LabelY value should be the lesser of the 1/2 bar value or the lower error value. If you use the bar value, assign "CENTER" to the POS column, else assign "TOP". You will use this data set instead of the original data set.
Remove the SEGMENTLABELTYPE option.
Add a TEXTPLOT after the BARCHARTPARM, using the LabelY column for the Y option and the POS column on the POSITION option.
Let me know if you have any questions or issues with these approaches.
... View more