Sql Select Sorgusu Hakkında Yardım
-
bir adet tablom var ve bu tabloda 1-2-3-7-8-34-123-66 artan ıdlerde verilerim var bunlar normalde 1 1 artarak ilerleriyor fakat aralarından veri silindiğinde otomatik olarak arada boşluklar oluşuyor. .net de bir program yapıyorum bu tabloyla amacım şu
ilk açıldığında program tablodaki son 6 itemi çektiricem sonrada iler butonuna bastığımda gösterdiği 6 tanesinden sorna gelen 6 taneyi alacak eğer 6 dan sonra 6 tane öge yoksa örnek 4 tane varsa önceki 6 dan 2 alıp 6 ya tamamlayacak
SELECT TOP 6 * FROM [Haberler] where order by HbrID desc;
şeklinde yaptığımda son 6 yı çekiyorum ama bundan sonrası için fikir yürütemedim.
-
çok fazla kod bilmem ama id lr 1+ olarak ilerliyor ve ekledigin haberi sildikten sonra o ara boş kalıyorsa sende haberi silmesen pasif hale alsan çünkü id ler arasında kaydırma yaparsan sıkıntı çıkartır gibi geldi bana.
tabi bir uzmanın açıklama yapmasını bekliyorum.
-
ElizaBeTH bunu yazdı
çok fazla kod bilmem ama id lr 1+ olarak ilerliyor ve ekledigin haberi sildikten sonra o ara boş kalıyorsa sende haberi silmesen pasif hale alsan çünkü id ler arasında kaydırma yaparsan sıkıntı çıkartır gibi geldi bana.
tabi bir uzmanın açıklama yapmasını bekliyorum.
oda olabilir pasif duruma getirme ama şuandaki sıkıntı listelemede :D where durum<> pasif deriz o işi çözereizde diğeri nasıl :D
-
SELECT TOP 6 * FROM [Haberler] where order by HbrID desc LIMIT 6,6;
6 dan sonraki 6 yi verir sana.
-
mssql bilmiyorum ama 6-12 aralığı için sanırım şöyle olmalı;
SELECT TOP 6 * FROM [Haberler] where order by HbrID desc OFFSET 6;
edit: 7-12 oluyo galiba böyle.
Hybris tarafından 03/Kas/14 14:03 tarihinde düzenlenmiştir -
hocalar ikiside hata veriyor
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'order'.
-
oradaki where in bi işlevi yok galiba onu silip dener misin.
mssqlda farklı bi olayı varsa bilmiyorum.
-
whereler gidince offet se limitler hataya düşüyor :D
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'LIMIT'.
-
hellboy4tr bunu yazdı
SELECT TOP 6 * FROM [Haberler] where order by HbrID desc LIMIT 6,6;
6 dan sonraki 6 yi verir sana.
hacı naptın sen mysql ile mssqlu çifleştirmişsin :|
mssqlda limit çalışmaz mysql içindir.
konuya dönersek amele stayla şeklinde şöyle bişey yapabilirsin; normal 6şarlı sayfalama yap bir sayfadaki dönen kayıtları da saydır eğer sayfadaki kayıt sayısı 6 ya tamamlanmazsa da en son kaç tane saydın atıyorum 4 tane saydın
4 tane MovePrevious yaptırıyorsun , 6 - 4 = 2 eder 2 tane daha MovePrevious yaptırıyorsun döngüyü devam ettirip 2 tane daha basınca exit yaptırıyorsun.
eğer sql 2012 kullanıyorsan süper bir yenilik getirdiler mysqldaki limitin aynısı. Onunla işi kıvırırsın. http://blog.verivizyon.com/ygozudeli/SQL+Server+2012+de+Kayıtları+Sayfalandırmak+_49.aspx
-
Dinazor yöntemlerle hallettim hocam ellerinize sağlık :)
-
furkiak bunu yazdı
bir adet tablom var ve bu tabloda 1-2-3-7-8-34-123-66 artan ıdlerde verilerim var bunlar normalde 1 1 artarak ilerleriyor fakat aralarından veri silindiğinde otomatik olarak arada boşluklar oluşuyor. .net de bir program yapıyorum bu tabloyla amacım şu
ilk açıldığında program tablodaki son 6 itemi çektiricem sonrada iler butonuna bastığımda gösterdiği 6 tanesinden sorna gelen 6 taneyi alacak eğer 6 dan sonra 6 tane öge yoksa örnek 4 tane varsa önceki 6 dan 2 alıp 6 ya tamamlayacak
SELECT TOP 6 * FROM [Haberler] where order by HbrID desc;
şeklinde yaptığımda son 6 yı çekiyorum ama bundan sonrası için fikir yürütemedim.
Veriyi nerede gösteriyorsun bilmiyorum fakat eğer listview, repeater, grid gibi bir komponentte görüntülüyorsan datapager kullanabilirsin.
http://bidb.itu.edu.tr/seyirdefteri/blog/2013/09/06/datapager-(veri-sayfalay%C4%B1c%C4%B1)-kontrol%C3%BC