sql ve Sum()
hakkus24.07.2003 - 10:59:28
Merhabalar,
select tarih, sum(toplam) from HAREKET where tarih='27.02.2003'
group by tarih
bu sql de sum(toplam) değeri 880,200,000 olarak hesaplanıyor.
Ayrıca
select tarih, sum(toplam) from AYRINTI where tarih='27.02.2003'
group by tarih
bu sql de de sum(toplam) değeri 880,200,000 olarak hesaplanıyor.
ANCAK
SELECT a.tarih, sum(a.toplam), b.tarih, sum(b.tarih)
from HAREKET a, AYRINTI b
WHERE a.tarih='27.02.2003' and b.tarih='27.02.2003' // veya b.tarih=a.tarih
Group by a.tarih, b.tarih
sorgusunda toplamlar farklı çıkıyor .
Bunun sebebi ne olabilir?
Şimdiden teşekkürler
Saygıyla
 
naile24.07.2003 - 11:42:48
SELECT a.tarih, sum(a.toplam), sum(b.tarih)
from HAREKET a, AYRINTI b
WHERE b.tarih=a.tarih
Group by a.tarih

diye dene bence.
 
fahrettin24.07.2003 - 12:42:02

SELECT a.tarih, sum(a.toplam), b.tarih, sum(b.tarih)
from HAREKET a, AYRINTI b
WHERE a.tarih='27.02.2003' and b.tarih='27.02.2003' // veya b.tarih=a.tarih
Group by a.tarih, b.tarih
Saygıyla


Kodda sum(b.tarih) demissiniz bu hata tabi. Eger kodu bu sekli ile calistirdiysaniz zaten farkli cikmasi normal.

Sizin yazdiginiz sql cumlesi de genel yapisi ile dogru olmakla birlikte bir kac gereksiz fazlaligi icerdigi icin Naile'nin yazdigi ornek daha dogru .
Tabi sum(b.toplam) sekli ile .

Kolay gelsin.
 
hakkus24.07.2003 - 13:13:15
Merhabalar,
ilginize teşekkür ederim.
evet sum(b.tarih) yanlışlıkla yazılmış aslında sum(b.toplam)
ancak ben her iki tablo da da '27.02.2003' tarihli kayıtların toplamını tek bir query i ile almaya çalışıyorum.
Naile nin kodunda tarih süzgeci yok.
Yeniden özetlersem hareket ve ayrıntı tablo larında tarih ve toplam alanları var.
Bu iki tablonun 27.02.2003 tarihine ait toplam alanlarının sum 'ını tek bir query ile almak istiyorum.
Saygıyla
 
rsimsek24.07.2003 - 13:52:46
SELECT a.tarih, sum(a.toplam), sum(b.toplam)
from HAREKET a, AYRINTI b
WHERE a.tarih = '27.02.2003' and b.tarih=a.tarih
Group by a.tarih

şeklinde yazman yetecek gibi..
 
hakkus24.07.2003 - 16:52:22
Merhabalar,
SELECT a.tarih, sum(a.toplam), sum(b.toplam)
from HAREKET a, AYRINTI b
WHERE a.tarih = '27.02.2003' and b.tarih=a.tarih
Group by a.tarih
şeklinde ki bir query 1.toplamı tanlış getiriyor.
iki ayrı query ile istediğim sonucu aldım ancak yukardaki query nin neden doğru çalışmadığını anlıyamıyorum.
Tekrar ilginize teşekkür ederim
Saygıyla
 
naile24.07.2003 - 17:53:03
İki tablo arasında başka ortak alanlar varsa onları da eşitleyerek dene istersen. Örneğin ikinde de stok_kodu alanları varsa
a.stok_kodu=b.stok_kodu

gibi
 
rsimsek25.07.2003 - 18:25:29
doğrusu ben böyle bir toplam alma hiç kullanmadım. belki gerekmedi. ama bence tektek almak -sözlü bir açıklaması olmasa da- en akıllıca olanı.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com