จัดอันดับสินค้าที่ขายได้มากที่สุด 10 อันดับ vb.net
ทำยังไงให้โชว์ข้อมูลแค่ 10 ตัวค่ะ
Date :
2010-06-25 13:11:50
By :
joy
ยาวๆทั้งหมดนี้ ถือว่าเป็น 1 statement นะคะ
Code (C#)
WITH [qr_base] AS
(
SELECT ROW_NUMBER() OVER (ORDER BY [amount_field_name]) AS [Rec_no]
,*
FROM [tableName]
)
SELECT *
FROM [qr_base]
WHERE [Rec_no] <=10 ;
ถ้าอยากให้ดึงข้อมูลออกมาเป็นช่วงๆ
ก็กำหนดที่ WHERE CLAUSE ค่ะ
เช่น
WHERE [Rec_no] BETWEEN 10 TO 100
Date :
2010-06-25 13:24:19
By :
blurEyes
ขอเป็น vb.net ได้ไหมค่ะ
Date :
2010-06-25 13:28:04
By :
joy
^ ^ มันเป็น SQL QUERY ค่ะ
เอาไปเขียนตรง Command ที่จะส่งไป GetTable ออกมาอะค่ะ
ใช้ได้กับทุกภาษา จะเป็น PHP C# หรือ VB.NET ได้หมดค่ะ
ขอเพียงว่าเป็น MS SQL SERVER 2005 UP
ใช้ฐานข้อมูลอะไรคะ อย่าบอกนะว่าเป็น ACCESS
แล้วก็ไหนขอดู CODE ที่เขียนสิคะ
ตรงที่จะเอาส่วนออกมาอะค่ะ ถึงไหนละ
Date :
2010-06-25 13:42:14
By :
blurEyes
ใช้ oracle ค่ะ
ที่เขียนคือดึงข้อมูลให้เรียงลำดับมากไปหาน้อยได้แล้วแต่ข้อมูลมันเยอะ ที่อยากได้คือกำหนดให้ข้อมูลออกมาแค่ 10 อันดับค่ะ
Date :
2010-06-25 13:48:06
By :
joy
คราวหลังก้อบอกข้อมูลมาด้วยนะคะ ไม่มีดวงด้านการเดามาแต่ไหนแต่ไรแล้วค่ะ
เพราะฐานข้อมูลแต่ละตัวใช้ SYNTAX ต่างกันอยู่
ในการเขียนอาจแตกต่างค่ะ
ในกรณีของ ORACLE จะเขียนแบบนี้
Code (C#)
SELECT *
FROM
(
SELECT *, rownum rec_no
FROM table_name
WHERE ....
ORDER BY ....
) alias_name
WHERE rnum <= 10 ;
ส่วนเรื่อง Code vb.net ต้องขออภัยอย่างมากค่ะ เพราะทดสอบให้ไม่ได้
notebook ที่ใช้ลง oracle ไม่ไหวค่ะ มันอืดมาก
Date :
2010-06-25 14:17:17
By :
blurEyes
Load balance : Server 00