I don't see why another measure has to be created. It can be done in the table on the front end, using above() function.
But if for some reason you still need another measure, you can do something like this:
"Stock On Hand"
FROM <some source>;
LEFT JOIN (Data) LOAD
Day+1 as Day,
"Stock On Hand" as "Previous Day Stock on Hand"
The logic works perfectly if I keep both tables separately and being linked by Date. However, if I try to left join, Qlik Sense just stays loading and does not finish. I created a separate table (Temp table) and in another syntax I left join, to finish loading two complete separate tables. But it does the same thing, it does not finish loading.
Your logic actually worked perfectly. My load was getting stuck because the measure is based on 3 dimensions, being Date one of them. I was not including the other 2 dimension in my join load, which was causing the data set not to be linked properly. Once I realized that and added the other 2 dimensions, the load finished within seconds.