Yazar |
|
sevecen
adana istanbul
Kayıt: 08.02.2006 |
|
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
İstanbul
Kayıt: 12.02.2006 |
|
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
adana istanbul
Kayıt: 08.02.2006 |
|
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
|
|