Advertisement
cahyadsn

query MAX() of SUM() data

Dec 22nd, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.67 KB | None | 0 0
  1. USE test;
  2.  
  3. DROP TABLE IF EXISTS penjualan;
  4. CREATE TABLE IF NOT EXISTS penjualan(
  5.   id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  6.   code CHAR(5) NOT NULL,
  7.   waktu DATETIME NOT NULL,
  8.   jumlah INT(11),
  9.   PRIMARY KEY(id)
  10. )ENGINE=MyISAM;
  11.  
  12. INSERT INTO penjualan(code,waktu,jumlah)
  13. VALUES
  14. ('A001','2014-12-01 12:34:56',4),
  15. ('A002','2014-12-01 13:03:33',5),
  16. ('A001','2014-12-01 14:41:21',2),
  17. ('A002','2014-12-01 14:44:12',4),
  18. ('A003','2014-12-01 16:10:09',1),
  19. ('A002','2014-12-02 09:14:55',8),
  20. ('A001','2014-12-02 11:04:15',3),
  21. ('A003','2014-12-02 12:23:34',17),
  22. ('A002','2014-12-02 15:29:16',4),
  23. ('A001','2014-12-03 08:24:26',4),
  24. ('A002','2014-12-03 08:34:43',8),
  25. ('A003','2014-12-03 09:01:51',2),
  26. ('A001','2014-12-03 10:31:36',1),
  27. ('A002','2014-12-03 16:59:02',3);
  28.  
  29. -- dengan query sederhana diperoleh:
  30.  
  31. SELECT * FROM penjualan;
  32. +----+------+---------------------+--------+
  33. | id | code | waktu               | jumlah |
  34. +----+------+---------------------+--------+
  35. |  1 | A001 | 2014-12-01 12:34:56 |      4 |
  36. |  2 | A002 | 2014-12-01 13:03:33 |      5 |
  37. |  3 | A001 | 2014-12-01 14:41:21 |      2 |
  38. |  4 | A002 | 2014-12-01 14:44:12 |      4 |
  39. |  5 | A003 | 2014-12-01 16:10:09 |      1 |
  40. |  6 | A002 | 2014-12-02 09:14:55 |      8 |
  41. |  7 | A001 | 2014-12-02 11:04:15 |      3 |
  42. |  8 | A003 | 2014-12-02 12:23:34 |     17 |
  43. |  9 | A002 | 2014-12-02 15:29:16 |      4 |
  44. | 10 | A001 | 2014-12-03 08:24:26 |      4 |
  45. | 11 | A002 | 2014-12-03 08:34:43 |      8 |
  46. | 12 | A003 | 2014-12-03 09:01:51 |      2 |
  47. | 13 | A001 | 2014-12-03 10:31:36 |      1 |
  48. | 14 | A002 | 2014-12-03 16:59:02 |      3 |
  49. +----+------+---------------------+--------+
  50. 14 rows in set (0.04 sec)
  51.  
  52. -- [A] kalo pengin liat jumlah total perhari dari masing-masing code bisa pake query:
  53.  
  54. SELECT code,DATE_FORMAT(waktu,'%d-%m-%Y') AS tgl,SUM(jumlah) AS jumlah
  55. FROM penjualan
  56. GROUP BY DATE_FORMAT(waktu,'%Y%m%d'),code;
  57.  
  58. +------+------------+--------+
  59. | code | tgl        | jumlah |
  60. +------+------------+--------+
  61. | A001 | 01-12-2014 |      6 |
  62. | A002 | 01-12-2014 |      9 |
  63. | A003 | 01-12-2014 |      1 |
  64. | A001 | 02-12-2014 |      3 |
  65. | A002 | 02-12-2014 |     12 |
  66. | A003 | 02-12-2014 |     17 |
  67. | A001 | 03-12-2014 |      5 |
  68. | A002 | 03-12-2014 |     11 |
  69. | A003 | 03-12-2014 |      2 |
  70. +------+------------+--------+
  71. 9 rows in set (0.04 sec)
  72.  
  73. -- [B] kalo pengin liat jumlah total terbesar pertanggal dan code bisa dengan query:
  74.  
  75. SELECT c.tgl,MAX(c.jumlah) AS jumlah
  76. FROM
  77.   (
  78.     SELECT DATE_FORMAT(waktu,'%d-%m-%Y') AS tgl,SUM(jumlah) AS jumlah
  79.     FROM penjualan
  80.     GROUP BY DATE_FORMAT(waktu,'%Y%m%d'),code
  81.   ) c
  82. GROUP BY b.tgl;
  83.  
  84. +------------+--------+
  85. | tgl        | jumlah |
  86. +------------+--------+
  87. | 01-12-2014 |      9 |
  88. | 02-12-2014 |     17 |
  89. | 03-12-2014 |     11 |
  90. +------------+--------+
  91. 3 rows in set (0.02 sec)
  92.  
  93.  
  94. -- nah dari [A] dan [B] kalo pengin tahu jumlah total terbesar pertanggal dengan menampilkan codenya juga bisa dibuat query sebagai berikut:
  95.  
  96. SELECT a.code,a.tgl,a.jumlah
  97. FROM
  98.   (
  99.     SELECT code,DATE_FORMAT(waktu,'%d-%m-%Y') AS tgl,SUM(jumlah) AS jumlah
  100.     FROM penjualan
  101.     GROUP BY DATE_FORMAT(waktu,'%Y%m%d'),code
  102.   ) a
  103. JOIN
  104.   (
  105.     SELECT b.tgl,MAX(b.jumlah) AS jumlah
  106.     FROM
  107.     (
  108.       SELECT DATE_FORMAT(waktu,'%d-%m-%Y') AS tgl,SUM(jumlah) AS jumlah
  109.       FROM penjualan
  110.       GROUP BY DATE_FORMAT(waktu,'%Y%m%d'),code
  111.     ) b
  112.     GROUP BY b.tgl
  113.   ) c
  114. ON (a.tgl=c.tgl AND a.jumlah=c.jumlah);
  115.  
  116. +------+------------+--------+
  117. | code | tgl        | jumlah |
  118. +------+------------+--------+
  119. | A002 | 01-12-2014 |      9 |
  120. | A003 | 02-12-2014 |     17 |
  121. | A002 | 03-12-2014 |     11 |
  122. +------+------------+--------+
  123. 3 rows in set (0.03 sec)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement