Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
1325
Tıklama
0
Öne Çıkarma
stok cari takip veritabanı sorunu
K
19 yıl
Yüzbaşı
Konu Sahibi

SQL de Arkadaşlar CariKart isminde bir tablom var bu tablo müşterilerin bilgilerini tutuyor.Yaklaşık 30 tane değişkeni var . Borc,Alacak ve Bakiye kolonları birtakım işlemlerden geçip öyle hesaplanacak.

Borc = Devir+Ödeme+Ciro+İadeFaturası+kdv+Diger;
Alacak=Devir+Ödeme+Ciro+İadeFaturası+kdv+Diger;
Bakiye=Alacak-Borc;

Şimdi benim düşüncem 2 ayrı tablo yapmak Borc ve Alacak diye Sonra bunların farkını Bakiyede tutmak. Ama ilişkilendirmede tabloları zorluk çekiyorum.
Her müşterinin bir tane Borc hanesi bir tane alacak hanesi olması lazım.Bakiye diye bir tablo açmam gerekir mi nasıl ilişkilendireceğim
Benim düşüncem yanlış mı fikir verecek olan var mı

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



C
19 yıl
Er

Merhaba
Database olarak ne kullanıyorsunuz... ?
Eğer MSSQL kullanıyorsanız.. Çok basit bir çözümü var ..
Borç, Alacak ve Bakiye alanlarını hesaplanacak şekilde ayarlamanız.
Sözkonusu formülleri database properties penceresinde ilgili alanın
Formulas özelliğine girerek sorunu çözebilirsiniz.. Tek bir tabloda..
Ancak daha basit bir database kullanıyorsanız.Örneğin Access;
O zaman SQL cümlesi ile sorunu çözebilirsiniz..

UPDATE CariKart
SET Borc = Devir+Ödeme+Ciro+İadeFaturası+kdv+Diger,
Alacak=Devir+Ödeme+Ciro+İadeFaturası+kdv+Diger;


UPDATE CariKart SET Bakiye=Alacak-Borc;

Cümleleri, yine başka tablo oluşturmadan problemi çözmenizi sağlayabilir.
İyi Çalışmalar...
Saygılarımla.........


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

Başka tablo oluştursam daha iyi çünkü CariKart tablosu iyice şişti 40 a yakın değişkeni var bunları da eklersem 50 yi bulacak ama söylediklerin işime yarayacak yine de saolasın
MSsql kullanıyorum veri tabanı olarak

Başka tablo kullanınca sorun Her carinin bir borc bir alacak tablosunun olması gerekmesi.Burada carikod kısmını primary key yapmam gerekiyo ancak o zamanda ilişki kuramıyorum Carikart tablosu ile Sorun burda



C
19 yıl
Er

Önemli değil yardımcı olabildiysem sevinirim...
Madem ki MSSQL kullanıyorsun O zaman başka bir seçenekte Carikart tablosuna Trigger yazmak olabilir. Yani Carikart tablosundaki ilgili kolonlar Update veya insert olduğunda Borç ve Alacak
tablolarına kayıt yapabilir veya güncelleyebilirsin... Mesela ;

CREATE TRIGGER borc_alacak_trigger
ON CariKart
FOR INSERT, UPDATE
AS
BEGIN
DECLARE @Devir int
DECLARE @Ödeme int
DECLARE @Ciro int
DECLARE @iadeFat int
DECLARE @kdv int
DECLARE @diger int

DECLARE @borc int
DECLARE @alacak int
DECLARE @bakiye int
DECLARE @musteri_id int


SELECT @musteri_id = musteri_id,
@Devir = Devir,
@Ödeme = Ödeme,
@Ciro = Ciro,
@iadeFat = İadeFaturası,
@kdv = kdv,
@diger = Diger FROM inserted

SET @borc = @devir+@Ödeme+@Ciro+@iadeFat +@kdv+@diger
SET @alacak=@devir+@Ödeme+@Ciro+@iadeFat +@kdv+@diger
SET @bakiye=@alacak - @borc

IF (EXISTS(SELECT * FROM borctablo WHERE musteri_id = @musteri_id ))
BEGIN
UPDATE borctablo SET borc = @borc WHERE musteri_id = @musteri_id
UPDATE alacaktablo SET alacak = @alacak WHERE musteri_id = @musteri_id
UPDATE bakiyetablo SET bakiye = @bakiye WHERE musteri_id = @musteri_id
END ELSE BEGIN
-- veya
INSERT INTO borctablo (musteri_id, borc) VALUES ( @musteri_id, @borc )
INSERT INTO alacaktablo (musteri_id, alacak) VALUES ( @musteri_id, @alacak )
INSERT INTO bakiyetablo (musteri_id, bakiye) VALUES ( @musteri_id, @bakiye )
END
END


şeklinde bir şey olabilir....
İyi çalışmalar
Saygılarımla.............


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

bU YAPtığımız triggerı program içinde çağırmamız gerekiyo mu yoksa kayıt girdikçe kendi otomatik olarak mı çalışıyo


Bu mesaja 1 cevap geldi.
C
19 yıl
Er

Bu trigger database üzerinde olup veritabanı penceresinden
tabloya kayıt ekleyip güncellediğinde bile otomatik olarak
çalışıyor.. Dolayısı ile program içerisinden çağırılmıyor..


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

Çok SAolasın çağlayan



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.