With wide-format data we use loop/vector commands to do cross-wave processing. With long-format data we use cross-case processing.
Let's say we want to find entry to unemployment for each person (if it occurs in the panel period). Thus we want to observe all spells in unemployment where the previous spell was not unemployment.
get file 'm:\multilong.sav'. recode jbstat (-9 thru -1=copy)(1,2=1)(3=2)(4 thru hi=3) into empl. value labels empl 1 'employed' 2 'unemployed' 3 'non-employed'. missing values all (-9 thru -1). if wave>1 lastempl=lag(empl). exec. compute enter= (lastempl<>2 and empl=2).
ENTER now marks waves where this is unemployment and the previous state was employment or non-employment. It will be missing if the previous state was not known (e.g., gaps, or late entry to the panel).
We can similarly observe exits from the panel (either permanent or temporary). Generate a variable which identifies the first wave of such absence (the respondent will be present in the previous wave but not this wave). Then for each wave except the first, copy last wave's substantive variables, and carry out a logistic regression on the probability of exiting from the panel.