การสร้าง Crosstab Table จาก 2 Table
กระทู้เก่าบอร์ด อ.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."

รบกวนอ.สุภาพหรือผู้รู้ช่วยแนะนำหน่อยนะครับว่าควรแก้ไขตรงไหนบ้างครับ ขอบคุณครับ

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R05219
ใกล้เคียงที่สุดเท่าที่ได้ก็คือ

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;

ผลลัพธ์ออกมาเป็นดังรูป
2 @R05220
ขอบคุณ คุณสันติสุขมากนะครับ จะลองไปประยุกต์ใช้ดูนะครับ ขอถามเพิ่มอีกนิดนะครับอย่างนี้ผลที่ได้ เราค่อยนำไปเขียน VBA เพิ่มเติมอีกทีใช่ไหมครับ ขอบคุณครับ
3 @R05222
คำสั่งที่ให้เป็น SQL SELECT Statement คุณสามารถนำไปสร้างเป็น Query Object ในส่วนของ Query หรือจะใส่ใน RecordSource property ของฟอร์มหรือรายงาน หรือจะใส่ในโค้ดของ VBA เพื่อเอาไปใช้ต่อก็ได้ มันใส่เอาไว้ได้หลายๆจุดขึ้นกับคุณจะเอาไปใช้ยังไงต่อ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.4350s