กระทู้เก่าบอร์ด อ.Yeadram
1,796 5
URL.หัวข้อ /
URL
ต้องการ Count ข้อมูลครับ
มีข้อมูล ดังนี้ครับ
TransDate Mat
01/01/09 A
02/01/09 A
03/01/09 A
04/01/09 B
05/01/09 B
06/01/09 C
01/02/09 A
02/02/09 B
03/02/09 C
04/02/09 C
05/02/09 A
06/02/09 A
07/02/09 D
ต้องการ Count ให้เป็นแบบนี้ครับ
Year Month CountOfMat
2009 1 3
2009 2 4
ตอนนี้ใช้ 2 Quries ก็ได้ผลตามต้องการครับ
แต่อยากรู้วิธีที่ใช้ Query เดียวแล้วได้ผลตามต้องการ (อีกแล้ว) ครับ
ลองนั่งมึน ๆ ทำจับ SQL มาซ้อนกัน แล้วยังไม่ได้ครับ ยังไม่ค่อยรู้หลักการเท่าไรครับ
ขอบคุณทุกคำตอบครับ
TransDate Mat
01/01/09 A
02/01/09 A
03/01/09 A
04/01/09 B
05/01/09 B
06/01/09 C
01/02/09 A
02/02/09 B
03/02/09 C
04/02/09 C
05/02/09 A
06/02/09 A
07/02/09 D
ต้องการ Count ให้เป็นแบบนี้ครับ
Year Month CountOfMat
2009 1 3
2009 2 4
ตอนนี้ใช้ 2 Quries ก็ได้ผลตามต้องการครับ
แต่อยากรู้วิธีที่ใช้ Query เดียวแล้วได้ผลตามต้องการ (อีกแล้ว) ครับ
ลองนั่งมึน ๆ ทำจับ SQL มาซ้อนกัน แล้วยังไม่ได้ครับ ยังไม่ค่อยรู้หลักการเท่าไรครับ
ขอบคุณทุกคำตอบครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01392
แบบคุณเจตระยอง จะได้คำตอบจำนวนรายการในแต่ละเดือน
Year Month CountOfMat
2009 1 6
2009 2 7
แต่ผมอยากได้คำตอบ จำนวน Mat ในแต่ละเดือน
Year Month CountOfMat
2009 1 3
2009 2 4
หมายเหตุ อยู่ระยองเหมือนกันหรือครับ ยินดีที่ได้รู้จักครับ
Year Month CountOfMat
2009 1 6
2009 2 7
แต่ผมอยากได้คำตอบ จำนวน Mat ในแต่ละเดือน
Year Month CountOfMat
2009 1 3
2009 2 4
หมายเหตุ อยู่ระยองเหมือนกันหรือครับ ยินดีที่ได้รู้จักครับ
3 @R01394
คิวรี่ย่อยครับ
SELECT q.y, q.m, Count(q.Mat) AS CountOfMat
FROM
(
SELECT Year([transdate]) AS y, Month([Transdate]) AS m, Mat
FROM Table1
GROUP BY Year([transdate]), Month([Transdate]), Mat
) AS q
GROUP BY q.y, q.m;
SELECT q.y, q.m, Count(q.Mat) AS CountOfMat
FROM
(
SELECT Year([transdate]) AS y, Month([Transdate]) AS m, Mat
FROM Table1
GROUP BY Year([transdate]), Month([Transdate]), Mat
) AS q
GROUP BY q.y, q.m;
4 @R01397
แบบคุณ yeadram ใช่เลยครับ
พอจะมองเห็นหลักการคร่าว ๆ แล้วครับ
เอา query แรก มาใส่ไว้ใน query ที่สอง โดย as query แรกให้เป็น dummy ไว้
ใช่หรือเปล่าครับ
ขอบคุณมากครับ
พอจะมองเห็นหลักการคร่าว ๆ แล้วครับ
เอา query แรก มาใส่ไว้ใน query ที่สอง โดย as query แรกให้เป็น dummy ไว้
ใช่หรือเปล่าครับ
ขอบคุณมากครับ
5 @R01399
ลองดูน่ะครับ Concept ของผมคือ
1. ใช้ Select Query
2. สร้าง Field ใหม่ ขึ้นมาใหม่ 2 Field เพื่อ Group ปี และ เดือน คือ
Year: Format([TransDate],"yyyy")
Month: Format([TransDate],"mm")
ทั้ง 2 Field เลือก Total เป็น Group By
3. เลือก Field Mat มา 2 Field แต่ ตัวหนึ่ง Total เป็น Group By และ
อีกตัวหนึ่ง Total เป็น Count
4. หรือ เขียน SQL ดังนี้
SELECT Format([TransDate],"yyyy") AS [Year], Format([TransDate],"mm") AS [Month], Table1.Mat, Count(Table1.Mat) AS CountOfMat
FROM Table1
GROUP BY Format([TransDate],"yyyy"), Format([TransDate],"mm"), Table1.Mat
ORDER BY Format([TransDate],"yyyy"), Format([TransDate],"mm"), Table1.Mat;
5. ลอง Run Query ดู
ไม่แน่ใจว่าจะถูกต้องตามคำถาม หรือ ไม่
ขอบคุณครับ
สุชาติ/ชลบุรี
1. ใช้ Select Query
2. สร้าง Field ใหม่ ขึ้นมาใหม่ 2 Field เพื่อ Group ปี และ เดือน คือ
Year: Format([TransDate],"yyyy")
Month: Format([TransDate],"mm")
ทั้ง 2 Field เลือก Total เป็น Group By
3. เลือก Field Mat มา 2 Field แต่ ตัวหนึ่ง Total เป็น Group By และ
อีกตัวหนึ่ง Total เป็น Count
4. หรือ เขียน SQL ดังนี้
SELECT Format([TransDate],"yyyy") AS [Year], Format([TransDate],"mm") AS [Month], Table1.Mat, Count(Table1.Mat) AS CountOfMat
FROM Table1
GROUP BY Format([TransDate],"yyyy"), Format([TransDate],"mm"), Table1.Mat
ORDER BY Format([TransDate],"yyyy"), Format([TransDate],"mm"), Table1.Mat;
5. ลอง Run Query ดู
ไม่แน่ใจว่าจะถูกต้องตามคำถาม หรือ ไม่
ขอบคุณครับ
สุชาติ/ชลบุรี
Time: 0.2805s
ขอเสนอแนวทางใช้ select query แล้วก็เปลี่ยน format ของฟิลด์วันทีให้เป็นปีกับเดือน และนับmat ก็ได้ครับ