SQL Command Convert multiple rows to one row csv format
ไม่แน่ใจว่า แต่ละท่านเคยเจอ โจทย์แบบว่า แปลง ข้อมูลจากที่เก็บข้อมูล เป็น row base แปลงเป็น 1 column โดย ให้ขั้นข้อมูลระหว่าง row ด้วย comma หรือไม่ เช่น ตัวอย่าง การหาว่า แต่ละวัน มีการขายสินค้าอะไรไปบ้าง สรุปเป็นวันๆ โดยในวันนั้นๆ ให้แสดง ผลว่า มีรายการสินค้าอะไรบ้าง ในรูปแบบ รหัสสินค้า คั่น ด้วย comma คล้ายๆ csv format (comma separate value) ข้อมูลต้นฉบับ เก็บเป็น record จำนวน 1 record เก็บข้อมูลดังนี้ วันที่ | รหัสสินค้า|จำนวน 1/2/09 | 1 | 5 2/2/09 | 1 | 10 1/2/09 | 2 | 10 2/2/09 | 2 | 15 1/2/09 | 3 | 10 2/2/09 | 3 | 10 3/2/09 | 3 | 10 1/2/09 | 4 | 10 อยากได้ผลลัพธ์ สรุปเป็น วันๆ ดังนี้ วันที่ | รหัสสินค้า 1/2/09 | 1,2,3,4 , 2/2/09 | 1,2,3 , 3/2/09 | 3 , วิธีการทำก็คือ การ select ข้อมูลให้อยู่ในรูปแบบ string หรือ (varchar,nvarchar) ขนาดใหญ่ โดยให้คุณเขียน function มา 1 ตัว ในการ แปลง multirow เป็น one row csv format กรณี SQL 2005 สามารถใช้ SELECT FOR XML PATH ไ...