Birden fazla tablo ile toplam alma sorunu

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Birden fazla tablo ile toplam alma sorunu

Mesaj gönderen cvheneburi »

Merhaba arkadaşlar. MYSQL veritabanı kullanarak bir uygulama geliştirmeye çalışıyorum aşağıda yazdığım sorgu ile görev alan personellerin seçilen kriterlere göre aldığı ücret kalemlerinin toplamını almaya çalışıyorum

Kod: Tümünü seç

SELECT
	SUM(turnuvaucret.YOL) AS YL, 
	SUM(turnuvaucret.YUZDEELLI) AS ELLI, 
	SUM(turnuvaucret.SEANS) AS S, 
	SUM(turnuvaucret.BRUT) AS B, 
	SUM(turnuvaucret.GV) AS GELIR, 
	SUM(turnuvaucret.DV) AS DAMGA, 
	SUM(turnuvaucret.KESTOP) AS KES, 
	SUM(turnuvaucret.ODENENTUTAR) AS NET, 
	SUM(turnuvaucret.TUTAR) AS tyevmiye, 
	SUM(turnuvaucret.MALULUKDEVLET) AS MDEVLET, 
	SUM(turnuvaucret.MALULUKKISI) AS MKISI, 
	SUM(turnuvaucret.GSSDEVLET) AS GDEVLET, 
	SUM(turnuvaucret.GSSKISI) AS GKISI, 
	SUM(turnuvaucret.KISADEVLET) AS KDEVLET, 
	SUM(turnuvaucret.KISAKISI) AS KKISI, 
	SUM(turnuvaucret.BES) AS BES, 
        SUM(turnuvaucret.HESAPGV) AS HESGV,
        SUM(turnuvaucret.HESAPDV) AS HESDV,
        SUM(turnuvaucret.GVISTISNA) as GVIST,
        SUM(turnuvaucret.DVISTISNA) as DVIST,
	turnuvalar.MUHKOD, 
	turnuvalar.BRANS, 
	turnuvalar.ACIKLAMA, 
turnuvaucret.GVORAN,
turnuvaucret.DVORAN,
	turnuvalar.TUR, 
	turnuvalar.YIL, 
	turnuvalar.DONEM, 
	turnuvalar.ODENDI, 
	turnuvalar.BASLAMA, 
	turnuvalar.BITIS, 
	turnuvalar.MUSABAKATIP, 
	turnuvalar.TIPADI, 
	turnuvalar.ODEMETARIH, 
	turnuvalar.DURUM, 
	turnuvaucret.TURNUVAID, 
	turnuvaucret.MUSABAKAID, 
	turnuvaucret.UCRETTIP, 
	turnuvaucret.TC, 
	turnuvaucret.ADSOYAD, 
	turnuvaucret.UNVAN, 
	turnuvaucret.GOREV, 
	turnuvaucret.CARPAN, 
	turnuvaucret.KATSAYI, 
	turnuvaucret.MUSABAKAADI, 
	turnuvaucret.TARIH, 
	turnuvaucret.TURNUVATUR, 
	turnuvaucret.TURNUVAADI, 
	turnuvaucret.KATEGORIID, 
	turnuvaucret.KATEGORI, 
	turnuvaucret.ILI, 
        personel.ADI,
        personel.SOYADI,
	turnuvaucret.GOREVDETAYADI, 
	turnuvaucret.MUSABAKASAHA, 
	turnuvamusabaka.TURNUVAID, 
	turnuvamusabaka.SAHA, 
	turnuvamusabaka.IL, 
	turnuvamusabaka.ILCE, 
	turnuvadetay.TURNUVAID, 
	turnuvadetay.MUSABAKAID,
	(personel.TC) as TC1, 
	personel.GELIRISTISNA, 
	personel.DAMGAISTISNA,
        personel.IBAN,
        turnuvaucret.BESORAN,
        turnuvaucret.EKCARPANTUTAR
FROM
	turnuvalar,
	turnuvaucret,
	turnuvamusabaka,
	turnuvadetay,
        personel
WHERE
	turnuvalar.ID = turnuvaucret.TURNUVAID AND
	turnuvalar.ID = turnuvamusabaka.TURNUVAID AND
	turnuvalar.ID = turnuvadetay.TURNUVAID AND
	turnuvaucret.MUSABAKAID = turnuvamusabaka.ID AND
	turnuvadetay.MUSABAKAID = turnuvamusabaka.ID AND
        turnuvaucret.TC=personel.TC AND turnuvalar.YIL=2022
GROUP BY
        turnuvaucret.TURNUVAID,turnuvaucret.tc

kodu çalıştırdığım zaman almak istediğim toplam alanları olduğundan fazla gösteriyor. örneğin bir personelin toplam seansı 5 olması gerekirken 12 olarak gösteriyor. Aynı şekilde toplam almak istediğim diğer alanları da fazla topluyor.
Kullanıcı avatarı
delphiyazar
Üye
Mesajlar: 8
Kayıt: 26 Tem 2023 01:39

Re: Birden fazla tablo ile toplam alma sorunu

Mesaj gönderen delphiyazar »

Bu durumda, sorgunuzda almak istediğiniz verileri dikkatli bir şekilde belirtmeniz gerekiyor. Ek olarak, birden fazla tablodan sorgu yapıyorsanız, hangi tablolardan verilerin çekileceği ve nasıl birleştirileceği gibi detayları da dikkate almalısınız.

Veri toplama işleminin doğru yapıldığından emin olmak için aşağıdaki önerileri deneyebilirsiniz:

1. Sorgunuzda GROUP BY ifadesi kullanarak, her personel için toplanacak verileri doğru şekilde gruplandırın. Gruplama işleminin doğru yapıldığından emin olmak için, sorgudan önce gruplama kriterlerinin belirtilmesi önemlidir.

2. Verileri birleştirdiğiniz tablolarda tekrarlanan satırların olmamasını sağlamak için, tüm JOIN ifadelerinde benzersiz bir anahtar (unique key) belirleyin. Bu anahtarlara göre, sorgulama işlemi yaparken hangi verilerin bir araya getirileceği belirlenecektir.

3. Kullanılan JOIN koşullarını ve WHERE koşullarını gözden geçirin. Yanlış koşullar veya filtreler kullanırsanız, sorgunuz istenmeyen sonuçlar üretebilir.

4. Sorgunuzda kullanılan tüm veri türlerinin doğru olup olmadığını kontrol edin. Yanlış veri türleri nedeniyle verilerin doğru şekilde toplanması engellenebilir.

5. Sorgunuzu çalıştırdıktan sonra sonuçları tek tek kontrol edin. Böylece yanlış veya beklenmeyen sonuçları tespit edebilirsiniz.
-----------------------------------------
http://puyafar.blogfa.com
Cevapla