Advertisement
cahyadsn

downline

Oct 21st, 2015
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.15 KB | None | 0 0
  1. -- memakai database TEST
  2. use TEST;
  3.  
  4. -- buat tabel baru
  5. DROP TABLE IF EXISTS tblmember;
  6. CREATE TABLE IF NOT EXISTS tblmember (
  7. no_id CHAR(5) PRIMARY KEY,
  8. nama CHAR(1),
  9. alamat VARCHAR(10),
  10. tlp VARCHAR(10),
  11. upline CHAR(1)
  12. );
  13.  
  14. -- masukkan contoh data ke dalam tabel
  15. INSERT INTO tblmember
  16. VALUES
  17. ('11202','B','Jakarta','081225030','A'),
  18. ('11201','A','Medan','081225020',''),
  19. ('11203','C','Bandung','081225051','A'),
  20. ('11204','D','Bogor','081225052','B');
  21.  
  22. -- tampilkan seluruh data
  23. SELECT * FROM  tblmember;
  24. +-------+------+---------+-----------+--------+
  25. | no_id | nama | alamat  | tlp       | upline |
  26. +-------+------+---------+-----------+--------+
  27. | 11201 | A    | Medan   | 081225020 |        |
  28. | 11202 | B    | Jakarta | 081225030 | A      |
  29. | 11203 | C    | Bandung | 081225051 | A      |
  30. | 11204 | D    | Bogor   | 081225052 | B      |
  31. +-------+------+---------+-----------+--------+
  32. 4 rows in set (0.00 sec)
  33.  
  34. -- tampilkan nama yg punya downline
  35. SELECT
  36.   upline AS nama,
  37.   COUNT(upline) AS downline
  38. FROM
  39.   tblmember
  40. WHERE
  41.   upline <> ''
  42. GROUP BY
  43.   upline;
  44.  
  45. +------+----------+
  46. | nama | downline |
  47. +------+----------+
  48. | A    |        2 |
  49. | B    |        1 |
  50. +------+----------+
  51. 2 rows in set (0.00 sec)
  52.  
  53. -- tampilkan nama yg punya 2 downline
  54. SELECT
  55.   upline AS nama,
  56.   COUNT(upline) AS downline
  57. FROM
  58.   tblmember
  59. GROUP BY
  60.   upline
  61. HAVING
  62.   downline=2;
  63. +------+----------+
  64. | nama | downline |
  65. +------+----------+
  66. | A    |        2 |
  67. +------+----------+
  68. 1 row in set (0.00 sec)
  69.  
  70. -- tampilkan data yg punya downline kurang dari 2
  71. SELECT
  72.   a.*
  73. FROM
  74.   tblmember a
  75. LEFT JOIN(
  76.   SELECT
  77.     upline,
  78.     COUNT(upline) AS downline
  79.   FROM
  80.     tblmember
  81.   GROUP BY
  82.     upline
  83.   HAVING
  84.     downline=2
  85. ) b
  86. ON
  87.   b.upline=a.nama
  88. WHERE
  89.   b.upline IS NULL;
  90.  
  91. +-------+------+---------+-----------+--------+
  92. | no_id | nama | alamat  | tlp       | upline |
  93. +-------+------+---------+-----------+--------+
  94. | 11202 | B    | Jakarta | 081225030 | A      |
  95. | 11203 | C    | Bandung | 081225051 | A      |
  96. | 11204 | D    | Bogor   | 081225052 | B      |
  97. +-------+------+---------+-----------+--------+
  98. 3 rows in set (0.00 sec)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement