กระทู้เก่าบอร์ด อ.Yeadram
        
           2,040   6		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        รายงานสรุปยอกรวม 10 อันดับแรก      
    
      ต้องการออกรายงานเพื่อหาค่ายอดรวมสูงสุด 10 อันดับแรก
โดยมีตารางข้อมูลบางส่วนดังต่อไปนี้ (ข้อมูลที่ใช้เยอะมาก)
ACC จำนวนเงิน Status
1 10 A
2 40 A
1 10 B
3 10 A
1 10 A
5 10 B
2 100 A
5 10 A
...
ต้องการออกรายงานดังนี้
1. หาผลรวมของจำนวนเงินแต่ละ ACC แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรกเท่านั้น
2. หาผลรวมของจำนวนเงินแต่ละ ACC แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรก พร้อมทั้งแสดงรายละเอียดของแต่ละ ACC ด้วย เช่น
ACC 2 จำนวนเงินรวม 140
ACC จำนวนเงิน Status
2 40 A
2 100 A
3. หาผลรวมของจำนวนเงินแต่ละ ACC โดยที่ Status เท่ากับ A เท่านั้น แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรก
ต้องทำอย่างไรก่อนค่ะ พยายาม query ก่อน แล้วจึงนำไปออกรายงาน แต่ทำไม่เป็น ไม่รู้จะเริ่มอย่างไร
นอกจากนี้พยายามหาในบอร์ดก่อนหน้านี้แล้วก็ยังไม่เจอค่ะ รบกวนด้วยค่ะ
    
    
  โดยมีตารางข้อมูลบางส่วนดังต่อไปนี้ (ข้อมูลที่ใช้เยอะมาก)
ACC จำนวนเงิน Status
1 10 A
2 40 A
1 10 B
3 10 A
1 10 A
5 10 B
2 100 A
5 10 A
...
ต้องการออกรายงานดังนี้
1. หาผลรวมของจำนวนเงินแต่ละ ACC แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรกเท่านั้น
2. หาผลรวมของจำนวนเงินแต่ละ ACC แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรก พร้อมทั้งแสดงรายละเอียดของแต่ละ ACC ด้วย เช่น
ACC 2 จำนวนเงินรวม 140
ACC จำนวนเงิน Status
2 40 A
2 100 A
3. หาผลรวมของจำนวนเงินแต่ละ ACC โดยที่ Status เท่ากับ A เท่านั้น แล้ว นำมาแสดงเฉพาะที่สูงสุด 10 ลำดับแรก
ต้องทำอย่างไรก่อนค่ะ พยายาม query ก่อน แล้วจึงนำไปออกรายงาน แต่ทำไม่เป็น ไม่รู้จะเริ่มอย่างไร
นอกจากนี้พยายามหาในบอร์ดก่อนหน้านี้แล้วก็ยังไม่เจอค่ะ รบกวนด้วยค่ะ
				6 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R07799    
        
  
      ขอบคุณค่ะคุณ Un ลองแล้วปรากฎว่าค่าที่แสดงเป็นค่าของ 10 record แรกคะ ยังไม่ใช่ผลรวมสูงสุด 10 ลำดับแรกค่ะ 
รบกวนด้วยนะค่ะ
    
  รบกวนด้วยนะค่ะ
        
    3 @R07810    
        
  
      1 
select top 10 acc, sum([จำนวนเงิน]) as sTotal
from table1
group by acc
order by sum([จำนวนเงิน]) desc;
2
select acc, [จำนวนเงิน], [status]
from table1 inner join (
select top 10 acc
from table1
group by acc
order by sum([จำนวนเงิน]) desc) as q
on table1.acc = q.acc
order by q.acc;
3
select top 10 acc, sum([จำนวนเงิน]) as sTotal
from table1
where [status] Like 'A'
group by acc
order by sum([จำนวนเงิน]) desc;
    
    
  select top 10 acc, sum([จำนวนเงิน]) as sTotal
from table1
group by acc
order by sum([จำนวนเงิน]) desc;
2
select acc, [จำนวนเงิน], [status]
from table1 inner join (
select top 10 acc
from table1
group by acc
order by sum([จำนวนเงิน]) desc) as q
on table1.acc = q.acc
order by q.acc;
3
select top 10 acc, sum([จำนวนเงิน]) as sTotal
from table1
where [status] Like 'A'
group by acc
order by sum([จำนวนเงิน]) desc;
        
    4 @R07812    
        
  
      ขอบคุณครับ อ.yeadram
บอร์ดตั้งกระทู้ใหม่ ไม่ได้ครับ
    
  บอร์ดตั้งกระทู้ใหม่ ไม่ได้ครับ
        
    5 @R07813    
        
  
      เรียงลำดับมากไปหาน้อยครับ ที่ตรงจำนวนเงิน    
    
  
        
    6 @R07818    
        
    
      ขอบคุณทุกท่านค่ะ    
    
  
      Time: 0.3996s
    
      
		
สร้าง Query เลือกฟิลด์ทั้ง 3 มา ACC,จำนวนเงินรวม และ Status
เลือก Group By แล้วตรงจำนวนเงินรวม ให้ใช้ Sum
แล้วที่ popertie ของ Query ตรงค่าสูงสุด ใส่เลข 10 ถ้าจะเอากี่อันดับก็ใส่ตรงนี้เลยครับ