กระทู้เก่าบอร์ด อ.Yeadram
        
           2,661   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.4868s
    
      
		
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;
ผลลัพธ์ออกมาเป็นดังรูป