I've done this, but it's a bit tricky. it involves using a "sort_by" parameter within your SQL query. Here's a simple example: select employee_name, activation_count, deactivation count, net_adds_count from (some database table) where (some conditions perhaps) order by $P{sort_by} Within Ireport when the report is first run, set a default "sort_by" to "activation_count asc". The report runs and sorts by that table field. When you design your report, make the column labels "hyperlinked", so when the user clicks on the column, the same report is run, but the "sort_by" parameter within the hyperlink parameters is changed to be sorted by that column. There's a little more work to be done to make this work, but hopefully this will get you going on the right track. David