Nasıl bir sorgu mantığı oluşturmalıyım

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ı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Nasıl bir sorgu mantığı oluşturmalıyım

Mesaj gönderen pro_imaj »

Merhaba arkadaşlar,

Stokla ilgili bir işlem var ama sp ve tr kullanmamam gerkiyor (link prog vt rapor yazıyorum)

FINSAT402.STI ===>stok mal adi
FINSAT402.STK====>stok kartı
FINSAT402.FYT====> Fiyat kartı

aşağıdaki sql cümlesi ile yapmak istediğim olaya çok yaklaştı mama şu işlemi bir türlü yaptıramadım.

FINSAT402.STI.IslemTip=0
FINSAT402.STI.IslemTur=0
FINSAT402.STK.MalAdi= ayni olan mal adları
yukarıdaki işlemi yapıp toplicam


FINSAT402.STI.IslemTip=1
FINSAT402.STI.IslemTur=1
FINSAT402.STK.MalAdi= ayni olan mal adları
yukarıdaki işlemi yapıp toplicam

sonuç olarakta
birbirinden çıkarıp stoktaki mal miktarını bulucam ve listeleyeğim.

yazdığım kod

Kod: Tümünü seç

SELECT STI.IslemTip, STI.IslemTur, STI.Tarih AS 'STI TARİH', STI.Miktar, STK.MalAdi, STK.TipKod, FYT.SatisFiyat1, FYT.SatisFiyat2, FYT.SatisFiyat3, FYT.BasTarih AS 'FYT BAŞ. TAR', FYT.BitTarih AS 'FYT BİT. TARİH', FYT.FiyatListNum, FYT.SatisFiyat1*STI.Miktar AS 'Fiyat* Miktar'
FROM solar4.FINSAT402.FYT FYT, solar4.FINSAT402.STI STI, solar4.FINSAT402.STK STK
WHERE STK.MalKodu = STI.MalKodu AND FYT.MalKodu = STI.MalKodu AND FYT.MalKodu = STK.MalKodu AND FYT.SiraNo = STI.SiraNo AND ((FYT.FiyatListNum='YD111111'))
bu koda yukarıdaki söylediğim şekilde yapamadım.
hangi yolu izlemem gerektiğini izah ederseniz sevinirim.

Teşekkür ederim
Çalışmalarınızda başarılar.

Not:Arkadaşlar balık tutmayı öğretebilrseniz çok daha memnun olurum. Saygılarımla
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Araştırmalarım içsel birleştirme yapma konusunda oldu şu an baya yaklaştım gibi ama bir türli bu sql koduna ekleyemiyorum yapacağım işlemi.

while do kullanmak istemiyorum.

ben çok fazla sıkışırsam mecburan kullanıcam yani işingeç olması hiç olmamasında iyidir.

Not: ya bir türlü sp kullanmadan stok işlemi yaptıramıyorum.

Saygılarımla
Çalışmalarınızda başarılar.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba

Arkadaşlar uzun uğraşlar sonucunda sorunu çözemyi başardım.

İlgilenen arkadaşlar olursa bu kod işlerine yarar diye düşündüm

Kod: Tümünü seç

SELECT STI.IslemTip,STI.IslemTur,
STI.Tarih AS 'STI TARİH', 
STK.MalAdi, 
STK.TipKod, 
FYT.SatisFiyat1, 
FYT.SatisFiyat2, 
FYT.SatisFiyat3, 
FYT.BasTarih AS 'FYT BAŞ. TAR', 
FYT.BitTarih AS 'FYT BİT. TARİH', 
FYT.FiyatListNum, 
FYT.SatisFiyat1,
sum(case STI.IslemTur WHEN 0 THEN Miktar else 0 end )as GirisMiktari,
sum(case STI.IslemTur WHEN 1 THEN Miktar else 0 end )as CikisMiktari,
sum(case STI.IslemTur WHEN 0 THEN Miktar else -Miktar end )as KalanMiktar


FROM solar4.FINSAT402.FYT FYT, solar4.FINSAT402.STI STI, solar4.FINSAT402.STK STK
WHERE STK.MalKodu = STI.MalKodu AND FYT.MalKodu = STI.MalKodu 
AND FYT.MalKodu =STK.MalKodu AND FYT.SiraNo = STI.SiraNo 
AND ((FYT.FiyatListNum='YD111111'))
group by STI.IslemTip,
STI.Tarih ,
STK.MalAdi, 
STK.TipKod, 
FYT.SatisFiyat1, 
FYT.SatisFiyat2, 
FYT.SatisFiyat3, 
FYT.BasTarih,
FYT.BitTarih ,
FYT.FiyatListNum, 
FYT.SatisFiyat1,
STI.IslemTur,
STI.Miktar
saygılarımla
Çalışmalarınızda başarılar.

Not: Yukarıdaki kod ile stok işlemlerini tek sql cümlesi içesinde çok sağlıklı bir şekilde yapmayı başardım.

while do dan şimdilik kurtuldum.
onbinleri aşan kayıtlarla çalışıyorum ama sql bilgimim zaaflığına uğradığım oluyor.

recep abi çok teşekkür ederim gerçekten sana şimdi daha çok hak veriyorum bu gün sum ile ilgili pek sorunum kalmadı.
allah (cc) tüm arkadaşlardan razı olsun.

Saygı ve sevgilerimle.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla