MSSQL Sıfırdan Büyük Sayıyı Bulana Kadar

Katılım
8 Eylül 2017
Mesajlar
6
Excel Vers. ve Dili
Excel 2016
Arkadaşlar merhaba şöyle bir derdim var;

Sayaçlar tablomda FirmaAdi,CihazSeriNo,Donem,YIL,Sayac gibi alanlarım var.
Sayaç alanım integer. Sayaç alanında boş olan değerler 0. Amacım ; Donem ve YIL olarak sıralanmış tablomda Sayaç alanı 0 olana kadar sıralanan değerleri listelemek. Örneğin;

FirmaAdı YIL Donem Seri No Sayac

TestFirma 2018 01 OCAK XXYYZZ 0
TestFirma 2017 12 ARALIK XXYYZZ 0
TestFirma 2017 11 KASIM XXYYZZ 1445
TestFirma 2017 10 EKIM XXYYZZ 0
TestFirma 2017 09 EYLUL XXYYZZ 0

Bu tabloda bana sadece ilk 2 kaydı vermesi gerekiyor.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,596
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Aşağıdaki sorgu fikir verebilir. Ben excel'de denedim sonuç verdi.

Kod:
sorgu = "select * from[sayfa1$] where clng(yıl & format(donem,'0#')) > (select clng(yıl & format(donem,'0#')) from[sayfa1$] where sayac <> 0)  "
 
Katılım
8 Eylül 2017
Mesajlar
6
Excel Vers. ve Dili
Excel 2016
Burada Donem alanının formatını mı değiştiriyoruz. SQL de sonuç alamadım. Birden fazla değer döndüğü için subquery alıyorum.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,226
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Kayıtları birbirinden ayıran tekil sayısal bir alan yok. Bu haliyle sorgu olmaz. İki seçeneğiniz var:

- Sql Server tarafında cursor açmak. T-Sql bilgisi gerektirdiği için zorlanabilirsiniz.
- Recordset nesnesini kullanarak for döngüsü. En kolayı da bu olacaktır.

.
 
Üst