กระทู้เก่าบอร์ด อ.Yeadram
2,478 3
URL.หัวข้อ /
URL
การสร้าง Crosstab Table จาก 2 Table
รบกวนผู้รู้แนะนำหน่อยนะครับ ผมต้องการดึงข้อมูลในตารางแสดงเป็น column แล้วแจกแจงตาม column มีตัวอย่างดังนี้ครับ ตารางที่1 มี 1 Field ชื่อ region เก็บข้อมูล ภาคต่างๆ ข้อมูลเป็นดังนี้ครับ
----------
Region
----------
nort
sout
west
east
central
ตารางที่ 2 ประกอบด้วย Field ชื่อ 1.salesman รหัสพนักงาน 2.total ยอดขาย 3.month เดือนของยอดขาย 4.region เก็บภาค ข้อมูลดังนี้ครับ
------------- --------- ------------ ----------
Salesman Total Month Region
------------- --------- ------------ ----------
001 10 Jan central
001 20 Feb central
001 15 Mar central
002 5 Jan east
002 10 Feb east
002 10 Mar east
003 20 Jan sout
003 20 Feb sout
003 20 March sout
โดยผมต้องการสร้าง Crosstab Table ให้ออกมารูปแบบดังนี้ครับ
--------------------------------------------------------------------------------------
| central | east | sout
--------------------------------- ----------------------------------------------------
Sale |Jan | Feb | March | Jan | Feb | March | Jan | Feb | March
--------------------------------- ----------------------------------------------------
001 |10 | 20 | 15 | | | | | |
002 | | | | 5 | 10 | 10 | | |
003 | | | | | | | 20 | 20 | 20
--------------------------------- ----------------------------------------------------
ซึ่งผมได้เขียน code ในการสร้าง Crosstab Table ดังนี้ครับ
TRANSFORM Var(table1.region) as sale_region
SELECT table2.salesman
FROM table2
GROUP BY table2.salesman
PIVOT table2.month
แต่ว่ามัน Error ว่า "Data Type mismatch in criteria expression."
รบกวนอ.สุภาพหรือผู้รู้ช่วยแนะนำหน่อยนะครับว่าควรแก้ไขตรงไหนบ้างครับ ขอบคุณครับ
----------
Region
----------
nort
sout
west
east
central
ตารางที่ 2 ประกอบด้วย Field ชื่อ 1.salesman รหัสพนักงาน 2.total ยอดขาย 3.month เดือนของยอดขาย 4.region เก็บภาค ข้อมูลดังนี้ครับ
------------- --------- ------------ ----------
Salesman Total Month Region
------------- --------- ------------ ----------
001 10 Jan central
001 20 Feb central
001 15 Mar central
002 5 Jan east
002 10 Feb east
002 10 Mar east
003 20 Jan sout
003 20 Feb sout
003 20 March sout
โดยผมต้องการสร้าง Crosstab Table ให้ออกมารูปแบบดังนี้ครับ
--------------------------------------------------------------------------------------
| central | east | sout
--------------------------------- ----------------------------------------------------
Sale |Jan | Feb | March | Jan | Feb | March | Jan | Feb | March
--------------------------------- ----------------------------------------------------
001 |10 | 20 | 15 | | | | | |
002 | | | | 5 | 10 | 10 | | |
003 | | | | | | | 20 | 20 | 20
--------------------------------- ----------------------------------------------------
ซึ่งผมได้เขียน code ในการสร้าง Crosstab Table ดังนี้ครับ
TRANSFORM Var(table1.region) as sale_region
SELECT table2.salesman
FROM table2
GROUP BY table2.salesman
PIVOT table2.month
แต่ว่ามัน Error ว่า "Data Type mismatch in criteria expression."
รบกวนอ.สุภาพหรือผู้รู้ช่วยแนะนำหน่อยนะครับว่าควรแก้ไขตรงไหนบ้างครับ ขอบคุณครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R05220
ขอบคุณ คุณสันติสุขมากนะครับ จะลองไปประยุกต์ใช้ดูนะครับ ขอถามเพิ่มอีกนิดนะครับอย่างนี้ผลที่ได้ เราค่อยนำไปเขียน VBA เพิ่มเติมอีกทีใช่ไหมครับ ขอบคุณครับ
3 @R05222
คำสั่งที่ให้เป็น SQL SELECT Statement คุณสามารถนำไปสร้างเป็น Query Object ในส่วนของ Query หรือจะใส่ใน RecordSource property ของฟอร์มหรือรายงาน หรือจะใส่ในโค้ดของ VBA เพื่อเอาไปใช้ต่อก็ได้ มันใส่เอาไว้ได้หลายๆจุดขึ้นกับคุณจะเอาไปใช้ยังไงต่อ
Time: 0.4350s
TRANSFORM Sum(T.Total) AS SumOfTotal
SELECT T.Region, T.Month
FROM Table2 AS T
GROUP BY T.Region, T.Month
ORDER BY T.Region, T.Month, T.SalesMan
PIVOT T.SalesMan;
ผลลัพธ์ออกมาเป็นดังรูป