os version is not the reason.
data is the reason
the reason is that one of the answer of the select is nothing
try this (not checked)
update grmlib/mspmp100 as t1 set pmfp2=(select
gupl2 as t2 where t1.prdno=t2.prdno and t2.pmfp2<>0)
now when t2 returns null (ie nothing), then select returns ‘defaultvalue’
nota : this sample assumes pmfp2 is char. If not, set the default value to an acceptable value