harezmi Merhaba,
bu iki farklı şekilde yapılabilir. Dinamik bir hesaplama ile de yapılabilir, statik bir hesaplama ile de.
Dinamik için;
Siz stok giriş-çıkış için bir tablonuz olmak zorunda zaten. İlgili ürünün id numarasını sorgulatıp, alış ve satış miktarını ayrı ayrı toplayıp çıkartırsanız elinizdeki stok miktarını öğrenmiş olursunuz.
Örneğin:
select
id,
stok_urun_id,
stok_urun_adi,
stok_islem_turu,
stok_miktar,
(select sum(stok_miktar) from where (stok_urun_id = 1) and (stok_islem_turu = 0)) as alis_miktari,
(select sum(stok_miktar) from where (stok_urun_id = 1) and (stok_islem_turu=1)) as satis_miktari
from stok_giris_cikis
Test etmedim direkt yazdım ama buradan dönen alis_miktari ile satis_miktari değerini çıkartırsan otomatikman sana elindeki o ürün için (id = 1) dinamik bir biçimde sonucunu verecektir. Fakat bu iyi bir şey mi?
Dinamik yapılarda sürekli sorgu isteği göndermek zorunda kalabilirsiniz, bu da veritabanı tarafında çok fazla isteğe sebep olabilir. Statik bir şekilde yapmak isterseniz de bu yolu izleyebilirsiniz;
stoklar tablonuzda stok_miktar
adında bir alan açın.
👽️ P.S: Dinamikte bahsettiğim stok_miktar aslında satış miktarı kapsıyor. Yani stoktan kaç tane satılmış veya alınmış.
her satış sonrası alınan ürünün miktarı alış veya satış ise update sorgusu ile o alanı güncelleyin.
Kendi önerim statik ilerlemeniz. Lakin hesaplamaların %99 tutarlılığını istiyorsanız dinamik hesaplama daha iyi olacaktır.