* question 1. *one way using filter (you can also filter: discont = 0 and category=1). USE ALL. COMPUTE filter_$=(discont = 0). VARIABLE LABEL filter_$ 'discont = 0 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMAT filter_$ (f1.0). FILTER BY filter_$. EXECUTE . FREQUENCIES VARIABLES=category. FILTER OFF. USE ALL. EXECUTE . * second way. CROSSTABS /TABLES=discont BY category /CELLS= COUNT. * third way. IF (discont = 0 & category=1) one = 1 . EXECUTE . FREQUENCIES VARIABLES=one. * question 2. * one way using filter. USE ALL. COMPUTE filter_$=(stock < 40). VARIABLE LABEL filter_$ 'stock < 40 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMAT filter_$ (f1.0). FILTER BY filter_$. EXECUTE . FREQUENCIES VARIABLES=unit_p /FORMAT=NOTABLE /STATISTICS=STDDEV. FILTER OFF. USE ALL. EXECUTE . * second way. * 40 belongs to first group in which it appears. RECODE stock (40 thru Highest=1) (Lowest thru 40=0) INTO stockg . EXECUTE . MEANS TABLES=unit_p BY stockg /CELLS STDDEV . * question 3. RECODE unit_p (Lowest thru 15=1) (15 thru 30=2) (30 thru Highest=3) INTO newprice . EXECUTE . CROSSTABS /TABLES=category BY newprice /CELLS= ROW. * question 4. USE ALL. COMPUTE filter_$=(discont = 0). VARIABLE LABEL filter_$ 'discont = 0 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMAT filter_$ (f1.0). FILTER BY filter_$. EXECUTE . list var name supplier category. FILTER OFF. USE ALL. EXECUTE .