Konuyu görüntüle
IUCODERS FORUM > Programlama > Veritabanları > Access: Row_number() fonksiyonu
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
04.01.2008-17:28 #33639
Merhaba arkadaşlar,

"SELECT InPersonId, StName

FROM (SELECT InPersonId, StName, ROW_NUMBER() OVER(order by InPersonId) AS ROWNUM

FROM TbPerson WHERE InPersonId > 0 ) as c WHERE InPersonId > 0 "

bu sorgu sqlde çalışıyor ama Access'te çalışmıyor. Netten araştırdığım kadarıyla Access kurallarına aykırı bir şey de yok.

Hata şu: ROW_NUMBER() OVER(order by InPersonId) Sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
aliprinter


avatar
İstanbul
Kayıt: 12.02.2006
04.01.2008-18:15 #33641
ROW_NUMBER() fonksiyonu SQL Server'da var, ancak anladığım kadarıyla MSAccess'te geçerli olmayan bir fonksiyon.
İstediğin işlemi başka türlü doğal yollarla şöyle gerçekleştirebilirsin sanırım:

SELECT InPersonId, StName, (SELECT COUNT(*) FROM TbPerson WHERE TbPerson.InPersonId <= e.InPersonId AND InPersonId > 0) AS ROWNUM
FROM TbPerson e WHERE InPersonId > 0






Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
05.01.2008-16:52 #33678
aliprinter çok teşekkür ederim.

Yazdığım sorguya göre aynı işlevi yapabilecek bir sorgu. Yalnız araya order by girdiğinde rownum aynı kalıyor. row_number() fonksiyonu ile aynı işlevde değil. (1,2,3,4,5 idli kayıtlar için row_number id desc olduğunda 5'e 1, 4'e 2 verirken accessteki sorgu 5'e 5, 4'e 4 veriyor. where TbPerson.idm <= e.idm yerine TbPerson.idm >= e.idm yazınca doğru sonuç veriyor.

Bir de order by için varchar alanlarda ya da sıralamak istediğin alan id değilse rownum doğru sonuç vermiyor. ) Access'te bunu yapamayacağımı anladım ve c#'ın grid'ine hayran kaldım bir kez daha (sayfalama ve sıralamayı birlikte yapabildiği için.). Bu arada yoruldum, kafam da çok karıştı, dünden beri sadece bununla uğraşıyorum. :(

Tekrar teşekkür ederim.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb