กระทู้เก่าบอร์ด อ.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
ผมอยากได้กราฟเส้น เพื่อเห็นยอดสะสมขึ้นไปเรื่อย ๆ ครับ
ขอบคุณครับ
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
ผมลองเอา a.postdate ไปสร้าง parameter แบบนี้
PARAMETERS [[a].[postdate]] DateTime;
ก็จะขึ้นเป็น error Invalid bracketing of name
แล้วต้องแก้อย่างไหนต่อครับ เพื่อให้ได้ 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 แรกอีกที จะง่ายกว่าครับ
แก้โดยให้สร้าง Query แรกแล้ว save ไว้ แล้วสร้าง Crosstab Query ที่นำมาจาก Query แรกอีกที จะง่ายกว่าครับ
3 @R00911
หรือจะลองใช้ Pivot Chart... มีให้เลือกทั้งเป็น Form และ Report
จะได้ไม่ต้องไปสร้างเป็น Cross Tab
เอา raw data ของคุณไป plot ได้เลยครับ
ลองดูนะครับ
จะได้ไม่ต้องไปสร้างเป็น Cross Tab
เอา raw data ของคุณไป plot ได้เลยครับ
ลองดูนะครับ
4 @R00912
ตอนนี้ ก็เอาไป make table เฉพาะ mat ที่ต้องการครับ
แต่ใช้ไปเรื่อย ๆ แล้ว database มันใหญ่ขึ้นเรื่อย ๆ ต้อง compact บ่อย ๆ ครับ
เดี๋ยวจะทดลองวิธีของคุณสันติสุข กับ คุณแดนน ดูนะครับว่า
ขอบคุณทุกท่านที่ช่วยอ?กความเห็นนะครับ
แต่ใช้ไปเรื่อย ๆ แล้ว database มันใหญ่ขึ้นเรื่อย ๆ ต้อง compact บ่อย ๆ ครับ
เดี๋ยวจะทดลองวิธีของคุณสันติสุข กับ คุณแดนน ดูนะครับว่า
ขอบคุณทุกท่านที่ช่วยอ?กความเห็นนะครับ
Time: 0.2360s