Forum

Biraz karmaşık bir ...
 
Bildirimler
Hepsini Temizle

Biraz karmaşık bir döngü sorusu

5 Yazılar
2 Üyeler
0 Reactions
526 Görüntüleme
(@OsmanAKSU)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Yukarıdaki gibi bir Müşteri tablom var 

Sistem şu şekilde işliyor Müşteri sisteme girebilmek için bir  Sponsora bağlı olması gerekiyor..Ve kişi kayıtlarını (alt müşterilerini sağ sol olmak üzere iki ye ayrılıyor )Mesela tabloda 12378 ID li kayıt 12377 nolu kayıta bağlı ve 12377 nin sol tarafında imiş (LeftlegID si 12378) aynı şekilde 12379 nolu kayıtta böyle ..

Şimdi benim yapmak istediğim ise müşteri mesela 12379 nolu Ahmet bir sipariş verdiğinde (Siparişten puan alıyor) aldığı puanı önce kandine yazacağız sonra sponsorun un eğer sol tafaında ise soltaraf puan toplamını aldığı puan kadar arttıracağız ve en üste kadar devam edecek

bunun için nasıl bir yol izlemeliyim veya wihile ile nasıl bir döngü yazabilirim 

 

 
Gönderildi : 11/06/2011 15:19

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Sipariş verildiğinde bu siparişin bilgisinin eklendiği tabloya bir on insert trigger'ı oluşturacaksınız. inserted tablosundaki değerleri inceleyip sizin belirlediğiniz kriterlere göre diğer tablolara ilgili veriler yazılacak.

 
Gönderildi : 11/06/2011 15:25

(@OsmanAKSU)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Mert Bey benim sorunum Sipariş eklendiğinde değil sipariş tablosuna kayıt eklen,yor ve onay durumu default olarak onaylanmamış oluyor..Sipariş onaylandandıktan sonra ben sipraiştten kazanılan puanın müşteriye ve üst sponsorlarına yazdırmak istiyorumm

 
Gönderildi : 11/06/2011 20:28

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Sipariş onaylandığında tabloda bir alanın değeri mutlaka değişiyordur. Dediğim gibi bir trigger oluşturarak (tabii eğer kayıdın yazılma anında sipariş onaylanmıyorsa bu durumda on insert,update trigger'ı oluşturmalıyız) müşteriye ve üst sponsorlarına puanı yazdırın. Trigger'da onayın olup olmadığı kontrol edilecek. Eğer onaylanmışsa bahsettiğiniz puanlar yazılacak.

 
Gönderildi : 12/06/2011 16:30

(@OsmanAKSU)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Tamda dediğiniz gibi Onaylandıktan sonra Müşteriyi eğer onaylanmamışsa onaylıyorum(sipairş vermeyen müşteri default olarak onaylanmıyor)

Şİmdi burada nasıl bir kod yazayımki  sponsorlara bu puanı yazdırayım

ALTER trigger [dbo].[MusteriOnay] on [dbo].[Orders] For Update
as
begin
declare @OldApprove int, @Approve int, @CustomerID int,@ApproveDate datetime,@CusApprove int
select @Approve=Approve, @CustomerID=CustomerID from deleted
select @OldApprove=Approve , @CustomerID=CustomerID  ,@ApproveDate=ApproveDate from inserted
if(@OldApprove > @Approve)
    begin
        select @CusApprove=(Select @Approve from Customer where ID=@CustomerID)
    if(@CusApprove < 0)
        update Customer set Approve=1,ApproveDate=@ApproveDate where ID=@CustomerID
    end

   
end

 
Gönderildi : 13/06/2011 17:09

Paylaş: