SELECT PADR(LEFT(codes,1),7) as codes,names,SUM(amount) as amount FROM table1 WHERE LEN(ALLTRIM(codes)) = 7 GROUP BY 1,2 UNION ALL ; SELECT PADR(LEFT(codes,2),7) as codes,names,SUM(amount) as amount FROM table1 WHERE LEN(ALLTRIM(codes)) = 7 GROUP BY 1,2 UNION ALL ; SELECT PADR(LEFT(codes,4),7) as codes,names,SUM(amount) as amount FROM table1 WHERE LEN(ALLTRIM(codes)) = 7 GROUP BY 1,2 UNION ALL ; SELECT * FROM table1 WHERE LEN(ALLTRIM(codes)) = 7 ORDER BY 1