A Microsoft extension to the ANSI SQL language that includes procedural programming, local variables, and various support functions.
Also check an approach that does not determine explicitly the unneeded counts:
update d
set [status] = case when s2 is null then s1 else 'chemical id have multiple status' end
from (
select v.[status], v.chemicalid, c1.chemicalStatus s1, c2.chemicalStatus s2
from #statusvalues v
inner join #chemical c1 on c1.chemicalId = v.chemicalid
left join #chemical c2 on c2.chemicalId = c1.chemicalId and c2.chemicalStatus <> c1.chemicalStatus
) d