22-01-2019, Saat: 17:34
Sanırım ne demek istediğimi anlatamadım. Üçüncü SELECT ifadeniz aşağıdaki gibi:
Burada SATTARIHI, SATTIPI, SATKUL isimli alanlar gruplamaya tabii tutulmuş ancak SELECT ifadesi içinde, GTAR ve GCIKKASA alanları yalın olarak kullanılmış. (Min, Max, Avg, Sum vb ile değil). Bu Firebird yoksa SANAL ALAN İSİMLERİ ile GROUP BY 'mı yapıyor ?? Normal durumda, tablo içinde gruplamada kullandığınız alanların haricindeki alanları bir birleştirme fonksiyonuna tabii tutmalısınız, aksi durumun hata vermesi gerekir. Ama bu aralar çok anormal şeyler görüyorum. Şaşırmayacağım..
Ayrıca, burada yine garip bir mantıksal problem var. Bana izah edebilirseniz memnun olurum. Yukarıdaki cümleden anladığımı yazayım:
Gider tablosunda GTAR alanı belirli tarih arasında olan kayıtları seç. Herhangi bir kısıt olmadığı için buradan birden fazla result dönebilir (Tabii sizin veritabanını nasıl tasarladığınızı bilemiyorum). Bu durumda, yukarıdaki for ifadesi bir CURSOR gibi davranıyor ve gelen tüm resultset içinde dönüyor. (5 kayıt var ise 5 defa dönecek demektir.) Peki eğer durum bu şekilde ise oradaki INTO ifadesi problemli çalışmıyor mu ? Her zaman 5nci kaydın bilgileri dolmuş olacak ilgili değişkenlerin içine.
for select GTAR as SATTARIHI, 'GİDER' as SATTIPI, GCIKKASA as SATKUL, round(sum(GTUTAR), 2) as TOP from GIDER where (GTAR between :TAR1 and :TAR2) group by SATTARIHI, SATTIPI, SATKUL --union all into :SATTARIHI, :SATTIPI, :SATKUL, :TOP
Burada SATTARIHI, SATTIPI, SATKUL isimli alanlar gruplamaya tabii tutulmuş ancak SELECT ifadesi içinde, GTAR ve GCIKKASA alanları yalın olarak kullanılmış. (Min, Max, Avg, Sum vb ile değil). Bu Firebird yoksa SANAL ALAN İSİMLERİ ile GROUP BY 'mı yapıyor ?? Normal durumda, tablo içinde gruplamada kullandığınız alanların haricindeki alanları bir birleştirme fonksiyonuna tabii tutmalısınız, aksi durumun hata vermesi gerekir. Ama bu aralar çok anormal şeyler görüyorum. Şaşırmayacağım..
Ayrıca, burada yine garip bir mantıksal problem var. Bana izah edebilirseniz memnun olurum. Yukarıdaki cümleden anladığımı yazayım:
Gider tablosunda GTAR alanı belirli tarih arasında olan kayıtları seç. Herhangi bir kısıt olmadığı için buradan birden fazla result dönebilir (Tabii sizin veritabanını nasıl tasarladığınızı bilemiyorum). Bu durumda, yukarıdaki for ifadesi bir CURSOR gibi davranıyor ve gelen tüm resultset içinde dönüyor. (5 kayıt var ise 5 defa dönecek demektir.) Peki eğer durum bu şekilde ise oradaki INTO ifadesi problemli çalışmıyor mu ? Her zaman 5nci kaydın bilgileri dolmuş olacak ilgili değişkenlerin içine.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...