|
|
#1 (permalink) |
|
Üyelik Tarihi: 25.09.2003
Yer: Ankara
Yaş: 23
Mesaj: 484
|
[ASP] En yüksek 5'i listeletmek
Resimdeki gibi bir tablo var. Ben bu tabloda, her satır için s1c, s1p, s2c gibi olan yerlerden en yüksek 5 tanesini seçip toplatmak istiyorum bunu nasıl yapabilirim?
Veya kısaca şöyle diyeyim. Tablolardaki sütunları önce büyükten küçüğe listeleyecek, bunlardan en baştaki 5 tanesini alacak ve toplayacak. Umarım ne istediğimi anlatabilmişimdir. Yardımlarınız için şimdiden teşekkürler.
__________________
Görmedim, duymadım, bilmiyorum! |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 25.09.2003
Yer: Ankara
Yaş: 23
Mesaj: 484
|
Re: [ASP] En yüksek 5'i listeletmek
Teşekkür ederim, ama olmadı.
Sorudaki karışıklığı azaltmak için ekte yeni bir resim gönderdim ve soruyu şöyle sorayım: Sayısal sütunlar s1c s1p; s2c s2p; s3c s3p olarak gidiyor. Resimde en son s7c görüyoruz. Benim yapmak istediğim, bu s'li sütunlardaki en yüksek beş değeri toplatmak. Yani, ASP'nin bu resimdeki en yüksek 5 değer olan: 13 12 11 10 9'u toplaması ve sonucu 55 olarak yazması. "SELECT TOP 5 * SUM(toplanacak_sutun) from ilgili_yer; order by s1c" ile tablo içinde toplama yapıyor sanırım.
__________________
Görmedim, duymadım, bilmiyorum! |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 11.01.2004
Yer: mersin - ankara - istanbul
Yaş: 28
Mesaj: 25
|
Re: [ASP] En yüksek 5'i listeletmek
Veritabanından datayı getirirken buyukten küçüğe iste sonra da aşağıdaki kodu kullan ;
<% i=1 do while i < 6 and not rsbbs.eof kazanc1= rsbbs("deger") kazanc= kazanc + kazanc1 rsbbs.movenext i=i+1 Loop toplam = kazanc %> <%=toplam%> bunu bir yerde kullanmışım zamanında işine yarar mı bilmiyorum
__________________
"Can you look around this world and believe in a goodness of a god who rules it?" http://blog.webakademi.net |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 25.09.2003
Yer: Ankara
Yaş: 23
Mesaj: 484
|
Re: [ASP] En yüksek 5'i listeletmek
Sağol Gökhan.
Soruyu düzgün anlatamadım sanırım ![]() Şöyle diyeyim, ben s1c, s1p gibi sütunun içindeki değeri değil; sütunun kendisini çekmek istiyorum. Yani bu en yüksek 5'i, her satır için yani her "navn" için değil, bir "navn"a ait s1c s1p; s2c s2p; s3c s3p'lerden en yüksek 5 tanesini...
__________________
Görmedim, duymadım, bilmiyorum! |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 23.04.2006
Yer: İstanbul
Mesaj: 15
|
Re: [ASP] En yüksek 5'i listeletmek
İşlemi ASP üzerinde yapan kodu yazdım.
Mantık çok basit. Datayı diziye dönüştür, diziyi sırala ve en yüksek 5 değeri topla. Dizi sıralama için ASP Fonksiyon Kütüphanesi adresindeki ArrayCollection class'ına ait array_desc fonksiyonunu kullandım. Ben örnek test dizi ile test ettim ve çalışıyor. İlla SQL ile yapacağım diyorsan Cursor veya geçici tablo kullanman gerekir. Ms Access ile bu yönteme hiç başlamamanı öneririm. Umarım işine yarar. Kod:
<!--#include file=array.ASP-->
<%
' datayı al ve getrows ile arrRecords' ata...
'..........
' arrRecords = rs.getRows()
' Örnek data
dim arrRecords(0,8)
arrRecords(0,0) = 0
arrRecords(0,1) = 1
arrRecords(0,2) = 19
arrRecords(0,3) = 3
arrRecords(0,4) = 4
arrRecords(0,5) = 5
arrRecords(0,6) = 10
arrRecords(0,7) = 11
const sColumnIndex = 0 ' Hesaplayacağın column index başlangıç
const fColumnIndex = 7 ' Hesaplayacağın column index sonu
dim i
dim j
dim arrTemp(7)
dim intTotal
for j=lbound(arrRecords) to ubound(arrRecords)
for i=sColumnIndex to fColumnIndex
arrTemp(i) = arrRecords(j,i)
next
next
set t = new ArrayCollection
t.arrContent = arrTemp
t.array_desc
for i=0 to 4
intTotal = intTotal + t.arrContent(i)
response.write t.arrContent(i) & "<br>"
next
set t = nothing
response.write "Toplam :" & intTotal
%>
Mesaj energizer tarafından 23.08.2006 (14:42) yeniden düzenlendi.. Açıklama: düzeltme |
|
|
|
Zoque'a hoşgeldiniz!