stoktan düşme mantığı

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

stoktan düşme mantığı

Mesaj gönderen y.kulac »

s.a.

firebird 1.5 ve ibx bileşenlerini kullanıyorum.
MALGIRIS diye bir tablom var. değişik tarihlerde farklı miktarlarda mal geldi diyelim.
örneğin;
01.04.2007 tarihinde Jenaratör = 5 adet
03.04.2007 tarihinde Jenaratör = 9 adet geldi.
.... = 10 adet
...
...
...
... diye devam ediyor

benim stoktan düşme mantığım şu olacak. "ilk giren mal ilk çıkar".

diyelimki ben 2 adet jenaratörü stoktan düşeceğim. ama bu ilk giren tarihteki miktardan düşülecek

yine diyelimki stoktan düşülen jeneratörden 1 tanesi geri iade edildi. bu sefer ilk gelen tarihten düştüğüm için yine ilk gelen tarihe iade edilecek.

sabahtan beri bu konu hakkında kafa yoruyorum. ama bir sounca varamadım. :N( :N( :N( :N( :duvar: :duvar:
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

FIFO mantığına benzese de giren malın fatura numarası ile çekeceğin sorgu

Kod: Tümünü seç

select fatura_no, sum(giren) - sum(cikan) - sum(iade) as Kalan
from hareket_tablosu
having sum(giren) - sum(cikan) - sum(iade) > 0
group by fatura_no
sorgusu ile elinde olanı bulup o fatura_no lu girişten çıkış yapabilirsin.

Burada GIREN, CIKAN, IADEYI ayrı alanlarda verebileceğin gibi tanımlayıcı bir alanla HAR_TIPI = 1 ise GIREN, 2 ise CIKAN, 3 ise IADE diye alabilirsin. O zaman sorguda CASE / WHEN ile ayırman gerekir.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla