Advertisement
cahyadsn

Total GrandTotal

Jul 8th, 2015
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.99 KB | None | 0 0
  1. DROP TABLE IF EXISTS `equipment`;
  2. CREATE TABLE IF NOT EXISTS `equipment` (
  3.  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  4.  `equipment` VARCHAR(10) NOT NULL,
  5.  `type` CHAR(1) NOT NULL,
  6.  `qty` int(11) unsigned NOT NULL,
  7.  PRIMARY KEY(`id`)
  8. )ENGINE='MyISAM';
  9.  
  10. INSERT INTO `equipment`(`equipment`,`type`,`qty`) VALUES
  11. ('equip_1','A',10),
  12. ('equip_1','B',10),
  13. ('equip_2','A',8),
  14. ('equip_2','B',10),
  15. ('equip_3','A',10),
  16. ('equip_3','B',10);
  17.  
  18.  
  19. SELECT
  20. IF(COALESCE(type,'Total')='Total','',COALESCE(equipment,'GrandTotal')) AS Equipment,
  21. IF(COALESCE(equipment,'GrandTotal')='GrandTotal','GrandTotal:',COALESCE(type,'Total:')) AS Type,
  22. SUM(qty) AS Qty
  23. FROM equipment
  24. GROUP BY equipment,type WITH ROLLUP;
  25.  
  26. ----------------------------
  27. |Equipment | Type      |Qty|
  28. ----------------------------
  29. |equip_1   |     A     | 10|
  30. |equip_1   |     B     | 10|
  31. |          |  Total:   | 20|
  32. |equip_2   |     A     |  8|
  33. |equip_2   |     B     | 10|
  34. |          |  Total:   | 18|
  35. |equip_3   |     A     | 10|
  36. |equip_3   |     B     | 10|
  37. |          |  Total:   | 20|
  38. |          |GrandTotal:| 58|
  39. ----------------------------
  40.  
  41. SELECT
  42. IF(d.equipment IS NULL,'',d.equipment)  AS Equipment,
  43. IF(COALESCE(a.equipment,'GrandTotal')='GrandTotal','GrandTotal:',COALESCE(a.type,'Total:')) AS Type,
  44. SUM(a.qty) AS Qty
  45. FROM equipment a
  46. LEFT JOIN (
  47.   SELECT  b. *
  48.   FROM equipment b
  49.   LEFT JOIN equipment c ON (
  50.     b.equipment = c.equipment
  51.     AND b.id > c.id )
  52.   WHERE c.id IS NULL
  53. )d ON (d.equipment=a.equipment AND d.type=a.type)
  54. GROUP BY a.equipment,a.type WITH ROLLUP;
  55.  
  56. ----------------------------
  57. |Equipment | Type      |Qty|
  58. ----------------------------
  59. |equip_1   |     A     | 10|
  60. |          |     B     | 10|
  61. |          |  Total:   | 20|
  62. |equip_2   |     A     |  8|
  63. |          |     B     | 10|
  64. |          |  Total:   | 18|
  65. |equip_3   |     A     | 10|
  66. |          |     B     | 10|
  67. |          |  Total:   | 20|
  68. |          |GrandTotal:| 58|
  69. ----------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement