Best SELECT vals.org_id_ma, vals.type_name, vals.type_count FROM( SELECT cd.org_id_ma, 'copier' type_name, COUNT(mt.id) type_count FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(1, 6) group by cd.org_id_ma UNION SELECT cd.org_id_ma, 'mfp' type_name, COUNT(mt.id) type_count FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(20, 21) group by cd.org_id_ma UNION SELECT cd.org_id_ma, 'printer' type_name, COUNT(mt.id) type_count FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(10, 11) group by cd.org_id_ma) vals group by vals.org_id_ma, vals.type_name order by vals.org_id_ma, vals.type_name; SELECT cd.org_id_ma, #cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'copier' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(1, 6) #AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'copier' UNION SELECT cd.org_id_ma, #cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'mfp' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(20, 21) #AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'mfp' UNION SELECT cd.org_id_ma, #cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'printer' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(10, 11) AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'printer'; SELECT cd.org_id_ma, cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'copier' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(1, 6) AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'copier' UNION SELECT cd.org_id_ma, cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'mfp' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(20, 21) AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'mfp' UNION SELECT cd.org_id_ma, cd.building_id_ma, #cd.SerialNumber, mt.id mach_type, 'printer' type_name, COUNT(mt.id) total FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(10, 11) AND cd.org_id_ma = 1592 GROUP BY cd.building_id_ma, 'printer'; /****************************/ SELECT cd.org_id_ma, cd.building_id_ma, cd.SerialNumber, mt.id mach_type, 'copier' type_name, COUNT(mt.id) FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(1, 6) AND cd.org_id_ma = 1592 UNION SELECT cd.org_id_ma, cd.building_id_ma, cd.SerialNumber, mt.id mach_type, 'mfp' type_name, COUNT(mt.id) FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(20, 21) AND cd.org_id_ma = 1592 UNION SELECT cd.org_id_ma, cd.building_id_ma, cd.SerialNumber, mt.id mach_type, 'printer' type_name, COUNT(mt.id) FROM current_devices cd INNER JOIN machines mach ON mach.id = cd.model_id INNER JOIN machine_types mt ON mt.id = mach.model_type WHERE mt.id IN(10, 11) AND cd.org_id_ma = 1592