Here's a couple of ways SELECT ss,CASE WHEN s1_wd<= s2_wd AND s1_wd<=s3_wd THEN s1_wdWHEN s2_wd<= s1_wd AND s2_wd<=s3_wd THEN s2_wdWHEN s3_wd<= s1_wd AND s3_wd<=s2_wd THEN s3_wdEND AS min_s_wdFROM dbo.Logic WHERE (ss = N'ss-r89-01') SELECT ss, MIN( CASE d.s_wd WHEN 1 THEN t.s1_wd WHEN 2 THEN t.s2_wd WHEN 3 THEN t.s3_wd END ) AS min_s_wdFROM dbo.Logic as lCROSS JOIN (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS d( s_wd )WHERE (ss = N'ss-r89-01') GROUP BY l.ss
HTHJasper Smith