• 09-09-2015, 00:05:37
    #1
    Merhabalar,

    stok hareket tablosunda giriş ve çıkış yapılan kodlara işlem tipi olarak G ve C atıyorum. Toplamlarını alabiliyorum ama bana kalan stok miktarı lazım tek tabloda nasıl yapabiliriz?
    Alanlar: stok_kodu,islemtipi(Girişse G Çıkışsa C atıyoruz),miktar,depo

    SELECT
    stok_har.stok_kodu,
    Sum(stok_har.miktar)
    FROM
    stok_har
    GROUP BY
    stok_har.stok_kodu
  • 09-09-2015, 00:43:36
    #2
    group by unique key'lerde biraz anlamsız. bilmiyorum stok_kodu tablonuzda unique mi?
    kalan'ı anlayamadım. girişlerin toplamı - çıkışların toplamı sonucunu mu arıyorsunuz yani ?

    SELECT sum( miktar ),islemtipi FROM `stok_har` GROUP BY islemtipi
    şeklinde iki grup için toplamları alıp kullanacağınız yerde iki sonuç satırının farkını alabilirsiniz.

    ya da alternatif olarak şöyle bir şey de olabilir
    [code]
    select sum(miktar) from stok_har where islemtipi = 'G' into @g;
    select sum(miktar) from stok_har where islemtipi = 'C' into @c;
    select @g-@c;

    tablo yapınızı bilmediğim için işlem sürelerini test eder uygun olanı kullanırsınız.
    kolaylıklar.

    istizan adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,

    stok hareket tablosunda giriş ve çıkış yapılan kodlara işlem tipi olarak G ve C atıyorum. Toplamlarını alabiliyorum ama bana kalan stok miktarı lazım tek tabloda nasıl yapabiliriz?
    Alanlar: stok_kodu,islemtipi(Girişse G Çıkışsa C atıyoruz),miktar,depo

    SELECT
    stok_har.stok_kodu,
    Sum(stok_har.miktar)
    FROM
    stok_har
    GROUP BY
    stok_har.stok_kodu
  • 09-09-2015, 00:56:13
    #3
    Aynen dediğiniz gibi giriş-çıkış=sonuç yapmak istiyorum. Stok durum listesi yani
    StokKodu - Bakiye
    AB235 50

    şeklinde görmek istiyorum. Dediğiniz gibi yapınca girişler ve çıkışlar toplamını veriyor.

    bluexpres adlı üyeden alıntı: mesajı görüntüle
    group by unique key'lerde biraz anlamsız. bilmiyorum stok_kodu tablonuzda unique mi?
    kalan'ı anlayamadım. girişlerin toplamı - çıkışların toplamı sonucunu mu arıyorsunuz yani ?

    SELECT sum( miktar ),islemtipi FROM `stok_har` GROUP BY islemtipi
    şeklinde iki grup için toplamları alıp kullanacağınız yerde iki sonuç satırının farkını alabilirsiniz.

    ya da alternatif olarak şöyle bir şey de olabilir
    [code]
    select sum(miktar) from stok_har where islemtipi = 'G' into @g;
    select sum(miktar) from stok_har where islemtipi = 'C' into @c;
    select @g-@c;

    tablo yapınızı bilmediğim için işlem sürelerini test eder uygun olanı kullanırsınız.
    kolaylıklar.
  • 09-09-2015, 01:23:30
    #4
    evet ilk örnekte 2 satır şeklinde giriş ve çıkış gelecek. o sonuçları çektirip birbirinden çıkartacaksınız.
    ya da ikinci yöntemi kullanın. o direk olarak aradaki farkı verir.
    3 select'i de tek seferde gönderin.
  • 16-09-2015, 10:58:16
    #5
    Merhabalar,

    Tablo Alanlarım
    tarih,stok_kodu,islemtipi(Girişse G Çıkışsa C atıyoruz),miktar,depo

    Aşağıda dediğiniz şekilde yapmak için selecti select stok_kodu,sum(miktar) from stok_har where islemtipi = 'G' into @g; şeklinde değiştirmek gerekmiyor mu stok koduna göre bakiye görmek için? Ayrıca şöyle bir hata var. Çıkışı yapılmayan bir kod için veri göstermiyor sadece g ve c hareketi olanlar listeleniyor. Eksi bakiye için girişi olmayanlar, ya da çıkışı olmayan sadece girişi olanlar için sorguyu nasıl değiştirebiliriz?





    "select sum(miktar) from stok_har where islemtipi = 'G' into @g;
    select sum(miktar) from stok_har where islemtipi = 'C' into @c;
    select @g-@c;

    tablo yapınızı bilmediğim için işlem sürelerini test eder uygun olanı kullanırsınız.
    kolaylıklar."