v2.5.2
Giriş yap

Php ile mysqlden 3 tablodan Veri çekme ve 2 tablonun toplamını almak hk!

ozcan
176 defa görüntülendi

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.

    //  
  $sube= $_POST['magaza'];
  $satis=$baglan->prepare("SELECT 
                          satislar.musteriID,
                          satislar.satisTarihi,
                          satislar.subeID,
                          satislar.acikHesap as cariToplam,
                          subeler.ID as subeID,
                          subeler.aciklama,
                          musteriler.musteriAd,
                          sum(t.tutar) as tahsilat

                          FROM satislar
                          
                          INNER JOIN musteriler ON satislar.musteriID=musteriler.ID
                           INNER JOIN subeler ON satislar.subeID=subeler.ID
                           INNER JOIN tahsilatlar as t ON satislar.musteriID=t.tMusteriID
                           where  satislar.satisTarihi between ? and ? AND satislar.subeID='{$sube}' 
                           AND satislar.acikHesap > 0 
                           GROUP BY satislar.musteriID 
                            "); 
                   $satis->execute(array($basTarihi,$bitTarihi,));
   
                while($satislariGetir=$satis->fetch(PDO::FETCH_ASSOC)){
                $resim=$satislariGetir['resim'];
                $TC=$satislariGetir['musteriTc'];
                $ID=$satislariGetir['tMusteriID'];
                $mAd=$satislariGetir['musteriAd'];
                $mTelefon=$satislariGetir['musteriTelefon'];
                $acikHesapToplam2+=$satislariGetir['cariToplam'];
                $tahsilat=$satislariGetir['tahsilat'];
              

h4ckdr0
479 gün önce

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.