|
|
|
ขอสอบถามเรื่องการใช้ SQL CROSS TAB นิดนึงครับ ว่าสามารถ ทำตามโจทย์ ประมานนี้ ได้ไหม |
|
|
|
|
|
|
|
Code (SQL)
/* สร้างตารางทดสอบ */
CREATE TABLE TestTable
(
Id INT IDENTITY PRIMARY KEY,
EmpName NVARCHAR(20) NOT NULL,
CompanyName NVARCHAR(20) NOT NULL,
ActivityYear INT NOT NULL
)
/* เพิ่มข้อมูลเข้าไป */
INSERT INTO TestTable (EmpName, CompanyName, ActivityYear) VALUES
('นาย A', 'บริษัท 1', 2555),
('นาย A', 'บริษัท 3', 2555),
('นาย B', 'บริษัท 1', 2560),
('นาย B', 'บริษัท 2', 2560),
('นาย B', 'บริษัท 3', 2560),
('นาย C', 'บริษัท 2', 2557),
('นาย C', 'บริษัท 3', 2557)
/* select ขึ้นมาดู */
SELECT * FROM TestTable
/* ทำ Pivot Table */
SELECT * FROM
(
SELECT
EmpName AS 'ชื่อ-นามสกุล', CompanyName , ActivityYear
FROM TestTable
) AS src
PIVOT
(
/* จุดนี้ไม่สามารถให้ค่าปีออกมาได้ เนื่องจากถ้าข้อมูลซ้ำจะทำไม่ได้
ซึ่งต้องเลือกว่าจะเอาค่าปีไหนออกมา จึงเลือกเป็น MAX แทน
*/
MAX(ActivityYear) FOR CompanyName IN ([บริษัท 1], [บริษัท 2], [บริษัท 3])
) AS pv
DROP TABLE TestTable
|
|
|
|
|
Date :
2014-10-16 21:50:51 |
By :
gunnermontana |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|