• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

SQL Query sorgusunda çoklu SUM ve MINUS fonksiyonu

Koray Bey değil de "Haluk" demek istediniz herhalde.

Resme bir daha bakabilirsiniz...

.
 
Özür dilerim, afyonum daha patlamadı sanırım :)
Resme baktım teşekkür ederim ancak hem giriş hem de çıkışları görüyorum, aslında yalnızca elde kalan miktarları görmem gerekiyor. Şimdi Altın Üyelik başvurusu yapıyorum, onaylandığında Koray Bey'in dosyasına bir bakacağım.
 
Ben ListBox'da görüntülenen verileri sizin 1. mesajınızda yazdıklarınız üzerine listelemiştim. Zaten o ayrı bir sorgu, istemezseniz kullanmazsınız.

Dosyanın bu şeklini ekliyorum, incelersiniz.

.
 

Ekli dosyalar

Üyeliğim onaylandığında dosyaya bakacağım Haluk Bey, ilginize teşekkür ederim.
 
Eğer Access kullanıyorsanız FIFO için size göre bir örnek var aslında.. Tabii Access hakkında bilginiz yoksa size karmaşık gelebilir ama sonradan yaşayacağınız karmaşalardan daha iyi bir çözüm de olabilir. Eğer isterseniz dosyayı da eklerim. Örnek görüntü alttadır. Sağdaki açılan kutudan tüm ürünleri de görebilirsiniz.

Not: Örnek bana ait değildir.

Adsız.png
 
Access tecrübem hiç yok diyebilirim. Kaldı ki, dosyaları kullanacak olan kişilerin içinde ben yokum, arkadaşların bu tür konularda ne kadar bilgili olduklarını tahmin edersiniz sanıyorum.
 
Yüklenmiş olan her iki dosyaya da göz atma fırsatı buldum. Fırsat bulabilirsem kullanmış olduğumuz dosyayı yükleyeceğim ki daha doğru bir yönlendirme yapmış olabileyim. Aksi halde çok karışacak gibi duruyor.
 
Şu an kullanmakta olduğum dosya ekteki gibidir. Userform üzerinden malzeme hareket türü, malzeme kodu seçilerek arka planda döngüler çalışıyor. Bu döngülerin getirdiği sonuçlara göre kareket kaydını oluşturan kişi seçimleri yaparak giriş çıkış işlemini gerçekleştiriyor. Hareket kayıtları aynı dosya üzerinde olduğu için iki kişi aynı anda dosya üzerinde çalışamıyor. Ayrıca for-next döngüleri çok fazla zaman alıyor (kayıt sayısı arttıkça işlem süresi uzuyor). Bunun yanında bir kaç küçük sorun daha var ki onları kendi başıma çözebileceğime inanıyorum. Dosya bu şekilde yaklaşık 4-5 yıldır çalışıyor (her sene ya da belli periyodlarda sıfırlayıp tekrar başlıyoruz). Son sıfırlama işlemi Ekim başında yapılmış görünüyor.

Önerilere açık olduğumu belirtmek isterim. Aynı zamanda, başlığını açmış olduğum sql sorgusu bende saplantı haline geldiği için o şekilde çözmeyi yeğlerim. İlgilenen arkadaşlara tekrar teşekkür ediyorum.
 

Ekli dosyalar

#13 nolu mesajımdaki koda bir-iki küçük ilave yaptım.

Kullanmak isterseniz güncel halini indirip kullanabilirsiniz.
 
Koray Bey dosyanızı inceledim, bu kadar sağlıksız veri olmasına rağmen doğru çalışıyor gibi görünüyor. Malzeme adı yerine malzeme kodu ile seçim yapabilsek daha verimli olacak çünkü malzemeleri kod numaraları ile takip ediyoruz. Değişken olarak malzeme kodu kullanmamanızın nedeni veri kirliliği ise sorun değil, o kısmı çözebilirim.
 
Sorgu da saplantı oldu yazdınız diye sorguyu ekliyorum ;) Altına da sonuç resmini..

SQL:
SELECT bb.[Malzeme Kodu], bb.[Malzeme Adı],
(select sum(Miktar) From Moves where [Malzeme Kodu] = bb.[Malzeme Kodu] and [G = Giriş_Ç = Çıkış] = "G") AS Top_Giren_Miktar,
(select sum(Miktar) From Moves where [Malzeme Kodu] = bb.[Malzeme Kodu] and [G = Giriş_Ç = Çıkış] = "Ç") AS Top_Çıkan_Miktar,
Top_Giren_Miktar - iif(isnull(Top_Çıkan_Miktar),0,Top_Çıkan_Miktar) as Kalan
FROM Moves AS bb
GROUP BY bb.[Malzeme Kodu], bb.[Malzeme Adı]
ORDER BY bb.[Malzeme Kodu];

Adsız.png
 
Koray Bey teşekkür ederim, gayet güzel çalşıyor. Danışmak istediğim bir konu daha var. Mevcut dosyamızda ID numaraları üzerinden bu takibi gerçekleştiriyordum, artık böyle bir kayıt numarasına ihtiyacım olmayacak sanıyorum. Ancak bunun da bir sakıncası var. Aynı lot ile iki farklı tarihte 100 + 100 Kg malzeme geldiğini kabul edersek, 150 Kg malzeme çıkışı yapmaya kalktığımda hangisini sıfırlayacak? Neyse bu şekilde çok çetrefilli olacak, en iyisi toplamlar üzerinden gitmek gibi görünüyor.
 
Sayın beab05, çok naziksiniz teşekkür ederim. Eve gidince deneyeceğim bu kodları da :)
 
@seismic ; ekte başka bir dosya daha verdim.

Bu dosyada; daha öncekine ilave olarak, yukarıda 32 No'lu mesajda @beab05 'in yaptığı gibi tüm malzemelerin fiili en son stok durumlarını ListBox nesnesinde gösterdim.

Ancak; aşağıdaki resimde görüldüğü gibi @beab05 ile benimki arasında sorgulama sonucunda geri dönen veriler arasında biraz fark var. Örneğin; Malzeme Kod No: 3112001 için bende fiili stok miktarı "0" çıkıyor, @beab05 'in eklediği resme göre onda "10500". Altındaki diğer malzemelerde de benzer bir durum var ..... Gerçi, ben yaptığım kontrolde benimkinin doğru olduğunu düşünüyorum ama belki benim atladığım bir şey olabilir ya da onunkinde ufak bir sıkıntı olabilir, bilemiyorum...

Zaten konuya siz hakim olduğunuz için olayı daha iyi yorumlarsanız, ben üzerinde fazla kafa yormadım, daha çok verilerin alınacağı SQL sorgusuyla ilgilendim. Önemli olan Excel ortamında ADO/SQL kullanımı olduğu için, siz @Zeki Gürsoy Beyin daha önce bahsettiği gibi verilerinizi düzelttikten sonra üzerinde çalışıp, daha değişik sorgularla istediğiniz bilgileri alabilirsiniz diye düşünüyorum.

Dosya ektedir ....

**********************************************************
(Not: Konuyu uzatmamak için dosya kaldırılmıştır... Bkz. 38 No'lu mesaj.)


Untitled.png
.
 
Son düzenleme:
Bu başlığın en çok 4-5 mesajda çözülmesi gerekirdi... Elde edilmek istenen listenin bir kısmının elle yapılarak tasvir edilmemesi, veri kaynağındaki karışıklıklar...

Kolay gelsin; ne diyeyim...
 
İstenen net olmadığı için konu uzayıp gidiyor.
 
Esasında konuyu uzatan ben oldum galiba .... kusura bakmayın !

**** Benim bu başlıktaki son mesajımdır *****

.
 
@Haluk; ben bu konudaki 28. mesajdaki dosyada bulunan verilere göre çıkarmıştım ve sonuç doğru gibi.. Belki farklı dosyalardan veri almışızdır.

Ben excel konusunda zaten çok zayıfım.. Sql olarak istediği için ve ben de sql i sevdiğim için katıldım. Ama konuyu açan arkadaşın dediği gibi daha işin içine fifo, filo falan da girerse excel in son kullanıcı için uygun olacağını da düşünmüyorum.

Konuyu birazcık ben de uzattım sanki ;)
 
İlgilenen herkese çok teşekkür ediyorum. Koray Bey'in bulmuş olduğu çözüm şu an için en uygun olanı gibi görünüyor. Yanlış yönlendirme, eksik ve hatalı bilgiler nedeniyle uğraştırdığım için kusura bakmayın lütfen. Bitirebilirsem dosyalarımı burada yine paylaşır, değerli fikirlerinizi ve önerilerinizi almak isterim.
 
Geri
Üst