Cursor ile Verileri Satir Satir isleme
Sql Serverda bir sorgu sonucu dönen kayitlar üzerinde satir satir islem yapmak için cursor kullaniriz. Cursor hangi satir üzerinde ise o satirda bulunan veriler ile islem yapariz.
Nasil Kullanilir:
Cursor de kullandigimiz Select cümlesinde dönen her kayit bir degiskene atanmalidir. Bu yüzden bu degeri alacagimiz bir degisken tanimlanir daha sonra cursor tanimlanarak cursor açilir. Select ifadesi sonucunda dönen kayit satir satir islenir. Basit bir cursor örnegi verelim.
declare @ID int declare cursorAdi cursor for SELECT ID from tabloAdi1 OPEN cursorAdi FETCH NEXT FROM cursorAdi INTO @ID WHILE @@FETCH_STATUS = 0 BEGIN –burada satir satir aldigimiz kayitlarla istedigimiz islemi yapabiliriz. Örn: select * from tabloAdi2 where ID = @ID — FETCH NEXT FROM cursorAdi INTO @ID END CLOSE cursorAdi DEALLOCATE cursorAdi |
hocammmm lutfenn yardim kafayi yiycemmm
http://forum.yazilimmutfagi.com/default.aspx?g=posts&m=1778&#post1778 hocam forumdaki soruma bakabilirmisiniz sanirim iki tabloyu joinleyerek yapicam ama isin icinden cikamadim bir hafta kosulunu nasil saglayabilirim
peki hocam bu rownumberlari bi dusugu ile bi buyugunu joinleme islemi nasil oluyor???
saatleri devre disi birakma kismini forumda acikladim
http://forum.yazilimmutfagi.com/default.aspx?g=posts&m=1778&#post1778
saatleri devre disi birakmak icin convert(date,DAte, 8) bunu yaptim olmadi hata verdi
hocam allah razi olsun sizde sagolun artik sitenin daimi takipcisiyim saygilar
Merhaba soruna cevap olarakl forumda bir konu actim
http://forum.yazilimmutfagi.com/default.aspx?g=posts&m=1778&#post1778
bu linkten sorunun cevabini ogrenebilirsin.
hocam sagolun cok isime yaradi…..simdi baska bi sorgu ile daha sizi rahatsiz edicem:)) bu sefer yine satis tablom var burada distributorkodu,satis temsilcisi kodu fatura numaralari ve bu faturalarin kesilme tarihleri tutuluyor.ben sunu yapicam:: satis temsilcilerinin ayni gun icinde ayni tutarla kestigi faturalarin dokumu.mesela 2 numaralai distributora ait 30 numarali satis temsilcisi 50 tane fatura kesmis bu faturalardan ayni gun icinde ayni tutalra kesilmis olanlarini listelicem sanirim group by kullanicam
merhaba ayse bu yontemle yapabilirsin ama yapmalimiyim dersen tabiki hayir. cunku senin sorunun cursor kullanmadanda yapilabilir. mecbur kalmadikca cursor kullanmamak gerekir cunku sql icin maliyetli bir islemdir.
sen ayni tabloyu kendisi ile joinleyerek sorununu cozebilirsin. ornegin ilk olarak her satira temsilci ve tarih sirasina gore 1.2.3.4… sekilde numara ver sonra bu taloyu kendi ile joinle, joini yaparken rownumberlarin bir dusugu ile bir buyugunu (yani 1 ve 2 yada 2 ve 3) joinle. bu sekilde aralarindaki farki bulabilirsin.
eger anlatamadiysam sen tablondaki kolonlari söyle,vaktim olursa sorgu yazip eklerim buraya.
hocam benimde bi satis tablom war.burda gonderilen satis temsilcisi id sine gore satis temsilcilerinin fatura kestgi tarihler ve fatura numaralari war.ben ard arda fatura kesim tarihlerini donguye sokarak birbirinden cikarmak istyoprum aradaki zaman farki 3 dk dan fazla ise bunlari listelicek bu yontemlemi yapicam tesekkurlerr
sagolun iyi bi ornekkk