cari bakiye update için query

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Misafir

cari bakiye update için query

Mesaj gönderen Misafir »

Kod: Tümünü seç

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO


CREATE PROCEDURE CAHAR_KONTROL(@KOD VARCHAR(15))
AS
BEGIN
  IF @KOD<>''
    UPDATE musteri
    SET borcu =
       (SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
    alacakı =
       (SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)
    WHERE musteri.kod = @kod
END

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

yukarıda ki procedure ile @kod değişkenine verdiğimiz cari kodu na ait toplam borç alacak güncelleme işlemini yapıyorum. yani :

Kod: Tümünü seç

execute CAHAR_KONTROL @kod = '1'
ile 1 nolu carinin toplam borç alacak bilgilerini guncelliyoruz. şimdi yapmak istediğim , bir dongü kurup tek tek tüm cariler için bu işle yapmak. bunu delphi de kolayca yapıyorum ama bunu yine SQL Server a yaptırmak istersek nasıl bir query yazmalıyım.

MS-SQL Server 2000.

teşekkürler.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

CREATE PROCEDURE CAHAR_KONTROL(@KOD VARCHAR(15))
AS
BEGIN
  IF @KOD<>''
    UPDATE musteri
    SET borcu =
       (SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
    alacakı =
       (SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)
    WHERE musteri.kod = @kod
  ELSE
    UPDATE musteri
    SET borcu =
       (SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
    alacakı =
       (SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)

END 
Eğer tümü için yapmak istediğiniz de @kod değişkenine '' verirsiniz. Bunu null veya -1 için de yapabilirsiniz tabi. Sadece bir kayıt için yapmak istediğinizde de ilgili @kod değerini verirsiniz.
Misafir

Mesaj gönderen Misafir »

teşekkür. bazen uzaktan bakmak işe yarıyor. cevap zaten sorunun içinde. tekrar teşekkür.

ama boş vermek yerine @kod u hiç kullanmamak daha mantıklı.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Evet kesinlikle uzaktan bakmak daha faklı oluyor.. Eğer procedürü iki amaçla değil de sadece bütün kayıtlar için kullnacaksanız ozaman @kod a ihtiyaç yok tabiki
Cevapla