team.team_id,member.rate,proposal_task.owner_member_id,team.token,feature.name,feat ure.feature_id,(SELECT SUM(proposal_task.estimated_hours) * (member.rate) from proposal_task where proposal_task.team_id = team.team_id AND proposal_task.feature_id = feature.feature_id) as estimated_cost,(SELECT count(DISTINCT proposal_task.task_id) from proposal_task where proposal_task.team_id = team.team_id AND proposal_task.feature_id = feature.feature_id) tasks_cnt_pergp,(SELECT SUM(proposal_task.estimated_hours) from proposal_task where proposal_task.team_id = team.team_id AND proposal_task.feature_id = feature.feature_id) estimated_hrscount from team INNER JOIN feature ON team.project_id = feature.project_id left join project_user on project_user.project_id =feature.project_id left outer join proposal_task on proposal_task.team_id = team.team_id left outer join member on proposal_task.owner_member_id=member.member_id where team.token = '"+token+"' AND team.project_id = '"+project_id+"' group by feature.name,feature.feature_id,feature.project_id order by feature.feature_id"); while (rs1.next()) { wrapper obj=new wrapper(); obj.setFeature_name(rs1.getString("name")); obj.setProposal_task_count(rs1.getInt("tasks_cnt_pergp")); obj.setEstimated_hrscount(rs1.getInt("estimated_hrscount")); obj.setEstimated_cost(rs1.getInt("estimated_cost")); obj.setFeature_id(rs1.getInt("feature_id")); obj.setToken(rs1.getString("token")); list.add(obj); } return list;