20 December 2016


Query yang satu ini sebenernya rani ga paham-paham banget dan ga apal-apal banget juga. Tapi beberapa kali perlu untuk menampilkan beberapa baris menjadi 1 baris di kolom yang sama. Jadi buat catatan aja ^_^

Tabel contoh yang akan digunakan adalah table variable sebagai berikut:
DECLARE @Students TABLE (
    [StudentID] char(5) NOT NULL,
    [StudentName] nvarchar(15) NOT NULL
)

INSERT INTO @Students VALUES
    ('S0001', 'Rani'),
    ('S0001', 'Novi'),
    ('S0002', 'Via'),
    ('S0002', 'Ani'),
    ('S0003', 'Irsan')

SELECT * FROM @Students

Dan berikut ini contoh query untuk menyatukan beberapa baris ke dalam satu baris:
SELECT t.StudentID,
  STUFF(ISNULL((SELECT ', ' + x.StudentName
          FROM @Students x
          WHERE x.StudentID = t.StudentID
      GROUP BY x.StudentName
          FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '')
          AS [Tanpa Koma di Awal],
  ISNULL((SELECT ', ' + x.StudentName
          FROM @Students x
          WHERE x.StudentID = t.StudentID
      GROUP BY x.StudentName
          FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '')
          AS [Dengan Koma di Awal Jika Ada Data]
FROM @Students t
GROUP BY t.StudentID

Semoga bisa bermanfaat juga buat readers..

Click here if you like this article.


0 comments: