ต้องการทำผลสะสมไปออกเป็น form chart
กระทู้เก่าบอร์ด อ.Yeadram

 1,915   4
URL.หัวข้อ / URL
ต้องการทำผลสะสมไปออกเป็น form chart

ผมมี table1

PostDate     Mat     Qty
01/10/2008     A     10
01/10/2008     B     5
02/10/2008     A     10
02/10/2008     B     5
03/10/2008     A     20
03/10/2008     B     10

ใช้ Query SQL นี้เพื่อให้ Qty เป็นยอด สะสม

SELECT a.PostDate, a.Mat, (select sum([qty]) from table1 where postdate <=a.postdate and mat =a.mat) AS AccuQty
FROM Table1 AS a;

ก็จะได้ข้อมูลมาแบบนี้

PostDate     Mat     AccuQty
01/10/2008     A     10
01/10/2008     B     5
02/10/2008     A     20
02/10/2008     B     10
03/10/2008     A     40
03/10/2008     B     20

แล้วผมก็แปลง Query ให้เป็น cross tab เพื่อไปทำ form chart แบบนี้

TRANSFORM Sum((select sum([qty]) from table1 where postdate <=a.postdate and mat =a.mat)) AS AccuQty
SELECT a.PostDate
FROM Table1 AS a
GROUP BY a.PostDate
PIVOT a.Mat;

แต่ไม่สามารถ Run แสดงข้อมูล
ขี้น error The Microsoft Jet database engine does not recognize as a valid field name or expression. (Error 3070)

ผมลองเอา a.postdate ไปสร้าง parameter แบบนี้
PARAMETERS [[a].[postdate]] DateTime;

ก็จะขึ้นเป็น error Invalid bracketing of name . (Error 3126)

แล้วต้องแก้อย่างไหนต่อครับ เพื่อให้ได้ query cross tab เพื่อไปทำ form chart
ผมอยากได้กราฟเส้น เพื่อเห็นยอดสะสมขึ้นไปเรื่อย ๆ ครับ

ขอบคุณครับ

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

1 @R00909
จะเป็นไรไหมถ้าจะ make table ก่อนแล้วค่อยไปทำ crosstab
2 @R00910
ทำแบบนั้นไม่ได้ครับ เพราะ a.postdate เป็นแค่หัวคอลัมน์หรือหัวบรรทัด มันจะไปถูกอ้างอิงไม่ได้ครับ

แก้โดยให้สร้าง Query แรกแล้ว save ไว้ แล้วสร้าง Crosstab Query ที่นำมาจาก Query แรกอีกที จะง่ายกว่าครับ
3 @R00911
หรือจะลองใช้ Pivot Chart... มีให้เลือกทั้งเป็น Form และ Report
จะได้ไม่ต้องไปสร้างเป็น Cross Tab
เอา raw data ของคุณไป plot ได้เลยครับ

ลองดูนะครับ
4 @R00912
ตอนนี้ ก็เอาไป make table เฉพาะ mat ที่ต้องการครับ
แต่ใช้ไปเรื่อย ๆ แล้ว database มันใหญ่ขึ้นเรื่อย ๆ ต้อง compact บ่อย ๆ ครับ

เดี๋ยวจะทดลองวิธีของคุณสันติสุข กับ คุณแดนน ดูนะครับว่า

ขอบคุณทุกท่านที่ช่วยอ?กความเห็นนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2360s