กระทู้เก่าบอร์ด อ.Yeadram
1,655 3
URL.หัวข้อ /
URL
สอบถามเกี่ยวกับการ คิวรีใน Access 2003
รบกวนผู้รู้หน่อยนาา ขอบคุณค่ะ
No ID Name ITEM Point
1 190 นาย สม คะแนน1 66
2 190 นาย สม คะแนน2 50
3 190 นาย สม คะแนน3 70
4 190 นาย สม คะแนน4 90
5 199 นาย ดี คะแนน1 42
6 199 นาย ดี คะแนน2 54
7 199 นาย ดี คะแนน3 80
8 199 นาย ดี คะแนน4 39
9 199 นาย ดี คะแนน5 50
รบกวนดูให้หน่อยนะค่ะ ถ้าต้องการคิวรีใน Access 2003 ดึง ข้อมูลรายละเอียดของแต่ละบุคคล โดยมีเงื่อนไขว่า
ให้ดึงข้อมูลรายละเอียดต่างๆของทุกคนขึ้นมาโชว์ โดยเลือกเฉพาะคะแนน 3 คะแนนที่มีค่ามากสุดของแต่ละคนเท่านั้น
ซึ่งใน DB บางคนอาจมีคะแนนถึง 6 รายาการแบบนี้จะต้องวนลูปอย่างไรค่ะ รบกวนผู้รู้ช่วยตอบให้หน่อยนะค่ะ
No ID Name ITEM Point
1 190 นาย สม คะแนน1 66
2 190 นาย สม คะแนน2 50
3 190 นาย สม คะแนน3 70
4 190 นาย สม คะแนน4 90
5 199 นาย ดี คะแนน1 42
6 199 นาย ดี คะแนน2 54
7 199 นาย ดี คะแนน3 80
8 199 นาย ดี คะแนน4 39
9 199 นาย ดี คะแนน5 50
รบกวนดูให้หน่อยนะค่ะ ถ้าต้องการคิวรีใน Access 2003 ดึง ข้อมูลรายละเอียดของแต่ละบุคคล โดยมีเงื่อนไขว่า
ให้ดึงข้อมูลรายละเอียดต่างๆของทุกคนขึ้นมาโชว์ โดยเลือกเฉพาะคะแนน 3 คะแนนที่มีค่ามากสุดของแต่ละคนเท่านั้น
ซึ่งใน DB บางคนอาจมีคะแนนถึง 6 รายาการแบบนี้จะต้องวนลูปอย่างไรค่ะ รบกวนผู้รู้ช่วยตอบให้หน่อยนะค่ะ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R06955
ขอบคุณค่ะสำหรับคำแนะนำ ได้ทำตามแล้วค่ะ
แต่ ถ้าใส่ว่า SELECT TOP [3,] SCORE.ID, SCORE.NAME, SCORE.ITEM, SCORE.POINT
ในส่วนของ TOP [3,] จะ Error โปรแกรมยอมแค่ให้ใส่ TOP 3 เท่านั้นอ่ะค่ะ
และถ้าใช้แค่ TOP 3 เฉยๆ ผลลัพธ์จะได้ คะแนนสูงสุด 3 อันดับจากทั้งหมดไม่ใช่รายบุคคลอ่ะค่ะ
ที่ต้องการ คือ ผลลัพธ์แบบนี้อะค่ะ
No ID Name ITEM Point
4 190 นาย สม คะแนน4 90
3 190 นาย สม คะแนน3 70
1 190 นาย สม คะแนน1 66
7 199 นาย ดี คะแนน3 80
6 199 นาย ดี คะแนน2 54
9 199 นาย ดี คะแนน5 50
นอกจาก Top 3 อันดับของแต่ละบุคคลแล้วยังต้องโชว์ ทุกID ทั้งหมดที่มี
คือไม่ระบุ ID ใดใดนั่นเองอะค่ะ
รบกวนหน่อยนะค่ะ ไม่เป็นจริงๆ แหะๆ
แต่ ถ้าใส่ว่า SELECT TOP [3,] SCORE.ID, SCORE.NAME, SCORE.ITEM, SCORE.POINT
ในส่วนของ TOP [3,] จะ Error โปรแกรมยอมแค่ให้ใส่ TOP 3 เท่านั้นอ่ะค่ะ
และถ้าใช้แค่ TOP 3 เฉยๆ ผลลัพธ์จะได้ คะแนนสูงสุด 3 อันดับจากทั้งหมดไม่ใช่รายบุคคลอ่ะค่ะ
ที่ต้องการ คือ ผลลัพธ์แบบนี้อะค่ะ
No ID Name ITEM Point
4 190 นาย สม คะแนน4 90
3 190 นาย สม คะแนน3 70
1 190 นาย สม คะแนน1 66
7 199 นาย ดี คะแนน3 80
6 199 นาย ดี คะแนน2 54
9 199 นาย ดี คะแนน5 50
นอกจาก Top 3 อันดับของแต่ละบุคคลแล้วยังต้องโชว์ ทุกID ทั้งหมดที่มี
คือไม่ระบุ ID ใดใดนั่นเองอะค่ะ
รบกวนหน่อยนะค่ะ ไม่เป็นจริงๆ แหะๆ
3 @R06956
จากคำถาม
"ซึ่งใน DB บางคนอาจมีคะแนนถึง 6 รายาการแบบนี้จะต้องวนลูปอย่างไรค่ะ "
แสดงว่าจะต้องรู้เรื่องการวนลูปบ้าง
นั่นคือ การเขียน vba เป็น
คุณก็เปิด recordset ของ รายชื่อคนทั้งหมด (ตารางที่เก็บรายชื่อคน)
แล้วส่งรหัส id มาที่ sql statement ที่ผมระบุไว้ ตรง where clause
คุณจะได้ recordset ของ รายชื่อนั้น แล้วจะนำไปทำอะไรต่อ หรือจะเก็บเข้า ตารางอีกตาราง หรือ จะนำไปเข้า ฟอร์ม หรือ ... แล้วแต่คุณมือใหม่ จะประยุกต์ใช้ครับ
แล้วมันจะ วนลูปไปจนจบตาราง รายชื่อคน ไม่ทราบว่าพอทำได้หรือไม่ หรือตรงคำถามหรือเปล่า
การเขียน คำสั่งต้องรู้เป้าหมายของงานที่ทำว่าต้องการอะไร นำไปใช้ประโยชน์ อะไร ผู้ตอบไม่รู้ทั้งหมดหรอกครับ เป็นแค่นำทางให้ ครับ
"ซึ่งใน DB บางคนอาจมีคะแนนถึง 6 รายาการแบบนี้จะต้องวนลูปอย่างไรค่ะ "
แสดงว่าจะต้องรู้เรื่องการวนลูปบ้าง
นั่นคือ การเขียน vba เป็น
คุณก็เปิด recordset ของ รายชื่อคนทั้งหมด (ตารางที่เก็บรายชื่อคน)
แล้วส่งรหัส id มาที่ sql statement ที่ผมระบุไว้ ตรง where clause
คุณจะได้ recordset ของ รายชื่อนั้น แล้วจะนำไปทำอะไรต่อ หรือจะเก็บเข้า ตารางอีกตาราง หรือ จะนำไปเข้า ฟอร์ม หรือ ... แล้วแต่คุณมือใหม่ จะประยุกต์ใช้ครับ
แล้วมันจะ วนลูปไปจนจบตาราง รายชื่อคน ไม่ทราบว่าพอทำได้หรือไม่ หรือตรงคำถามหรือเปล่า
การเขียน คำสั่งต้องรู้เป้าหมายของงานที่ทำว่าต้องการอะไร นำไปใช้ประโยชน์ อะไร ผู้ตอบไม่รู้ทั้งหมดหรอกครับ เป็นแค่นำทางให้ ครับ
Time: 0.2503s
SELECT TOP [3,] SCORE.ID, SCORE.NAME, SCORE.ITEM, SCORE.POINT
FROM SCORE
WHERE (((SCORE.ID)=[ค่าที่ส่งเข้ามา]))
GROUP BY SCORE.ID, SCORE.NAME, SCORE.ITEM, SCORE.POINT
ORDER BY SCORE.POINT DESC;
ถ้าเขียน vba ก็ส่งค่า คนที่ต้องการหา (id) ตรง where clause จะได้คะแนน สูงสุด 3 คะแนนแรก ของ id นั้น นำไปแสดงหรือ นำไปใช้ต่อไป
ไม่ทราบตรงตามที่ต้องการหรือไม่ อย่างไร