Php ile mysqlden 3 tablodan Veri çekme ve 2 tablonun toplamını almak hk!
Merhaba,
İlişkisel veritabanı tablosu oluşturdum ve detaylar aşağıdaki gibidir.
musteriler (Müşteri bilgilerini olduğu)
satislar (satış işlemlerini tutar girerek yapılyorum, ürünler yok! Müşteri tablosuna musteriID ile ilişkili)
tahsilatlar (Açık hesapların tutulduğu alan satışlar kısmı, tahsilatları musteriID olarak kayıt işlemi yapılıyor buraya, musteriID ilişkisel alan)
Rapor ekranı hazırladım, sorguyla alanları getiriyorum ama akrana bastığım zaman rakamlar 2 katı çıkıyor.
Yardımınıza ihtiyacım var.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
Eğer sorgunuzda "GROUP BY satislar.musteriID" komutunu kullandıysanız ve hala rakamlar 2 katı çıkıyorsa, bu durumda $acikHesapToplam2 değişkenini sorgu sonucunu döngü içinde gezerek her satır için tek tek eklemeniz gerektiği anlamına gelir.
Yukarıdaki kod, her satır için cariToplam değerini $acikHesapToplam2 değişkenine ekleyecektir.
Ayrıca, sorgunuzda "GROUP BY satislar.musteriID" komutunu kullanarak satışları gruplandırmanız gerekmektedir. Ancak sorgunuzda acikHesapToplam2 değişkenini satislar tablosunda acikHesap alanından alıyorsunuz. Bu nedenle sorgunuzda acikHesapToplam2 değişkenini satislar tablosunda acikHesap alanının toplamını almak için SUM fonksiyonunu kullanmanız gerekmektedir.
Bu şekilde sorgunuzda acikHesapToplam2 değişkeni satislar tablosunda acikHesap alanının toplamını verecektir.
Rapor ekranınızda rakamların 2 katı çıkmasının nedeni, satislar tablosunda müşteri ID'si ile ilişkili olarak aynı müşteriye ait satışların birden fazla kez sayılması olabilir. Bu nedenle, sorgunuzda "GROUP BY satislar.musteriID" komutunu kullanarak müşteri ID'si baz alınarak satışları gruplandırmanız gerekmektedir. Ayrıca, sorgunuzda "sum(t.tutar) as tahsilat" komutunu kullanarak tahsilatların toplamını hesaplamaktasınız, bu nedenle tahsilatların birden fazla kez sayılmasına da neden olabilir. Bu durumda sorgunuzda "GROUP BY satislar.musteriID, t.tutar" komutunu kullanarak müşteri ID ve tutar baz alınarak satışları ve tahsilatları gruplandırmanız gerekmektedir.