Arsip: Nanya SQL...

 
user image
more 16 years ago

reminder2k1

Halo temen2, dah lama saya ga nongol disini, sekarang nongol berniat mo nglempar pertanyaan... Tlg di bantu ya??? :mrgreen: Gini saya punya table spt ini:

DROP TABLE IF EXISTS tnama;
CREATE TABLE tnama (
  id int(11) NOT NULL auto_increment,
  NIK varchar(10) default NULL,
  Nama varchar(10) default NULL,
  NoTelp varchar(10) default NULL,
  Grup varchar(10) default NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records 
-- ----------------------------
INSERT INTO tnama VALUES ('1', 'A', 'A', 'A', 'A');
INSERT INTO tnama VALUES ('2', 'A', 'A', 'A', 'B');
INSERT INTO tnama VALUES ('3', 'A', 'A', 'A', 'C');
INSERT INTO tnama VALUES ('4', 'B', 'B', 'B', 'A');
INSERT INTO tnama VALUES ('5', 'B', 'B', 'B', 'B');
INSERT INTO tnama VALUES ('6', 'C', 'C', 'C', 'A');
INSERT INTO tnama VALUES ('7', 'C', 'C', 'C', 'B');
Nah hasilnya kan spt ini: [code:1:01ab885410] NIK Nama NoTelp Grup A A A A A A A B A A A C B B B A B B B B C C C A C C C B [/code:1:01ab885410] sekarang mo dicari querynya supaya resultnya spt ini: [code:1:01ab885410] NIK Nama NoTelp Grup A A A A,B,C B B B A,B C C C A,B [/code:1:01ab885410] Ada yg punya ide???
user image
more 16 years ago

AndyK

Blum ada ide Mas... :D contohnya masih bungun...
user image
more 16 years ago

AndyK

eh bingun.. :D
user image
more 16 years ago

reminder2k1

asalnya ada 7 record, karena ada NIK, Nama & NoTelp nya yg sama, jadi field GRUP nya di GROUP-kan, tapi hasil yg diinginkan spt itu.. Barusan saya dah explorasi, tapi cuma dapet record pertama dari masing2 group, mgkn ada yg berminat untuk melanjutkan... Ini syntax nya:

SELECT Q.NIK, Q.Nama, Q.NoTelp,
IF (@row> MAX(Q.rowID), @row:=1, if(@row=1, @st:=Q.Grup, @st:=@st&','&Q.Grup)) AS Grup2
FROM (SELECT @row:=1) as r, (
SELECT Q1.NIK, Q1.Nama, Q1.NoTelp,  Q1.Grup,
IF (@row>=(SELECT COUNT(Q2.Grup)
   FROM TNama AS Q2
   WHERE Q2.NIK = Q1.NIK 
   AND Q2.Nama = Q1.Nama
   AND Q2.NoTelp = Q1.NoTelp
   GROUP BY Q2.NIK, Q2.Nama, Q2.NoTelp
   ORDER BY Q2.NIK, Q2.Nama, Q2.NoTelp),@row:=1,@row:=@row+1) AS rowID
FROM (SELECT @row:=0) AS r, TNama AS Q1) AS Q
GROUP BY Q.NIK, Q.Nama, Q.NoTelp
ORDER BY Q.NIK, Q.Nama, Q.NoTelp
user image
more 16 years ago

Manz

Just simply query statements: select nik, nama, telp, group_concat(grup) from tnama group by nik Just use the MySQL reserved word ... i like it :mrgreen:

NIK Nama  NoTelp  Grup 
A     A       A         A,B,C 
B     B       B         A,B 
C     C       C         A,B
user image
more 16 years ago

reminder2k1

wadaw ga prnh kpikiran... Ternyata sesimple itu... Wah thx bro... ^:)^
more ...
  • Pages:
  • 1
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com