2016-04-10 16 views
0

İki MySQL sorguları vardır:İKİ FARKLI MySQL tablo sorgulamak ve karşılaştırmak için nasıl sonuçlar

1:

select TblC.name, 
SUM(TblC.total) as Sum 
from TblC 
left join TblCli on TblC.id_cli = TblCli.id 
group by TblCli.name asc 

sonuç

NAME  SUM 
john 1000 
peter 500 
Alicia 300 

2 geçerli:

select TblCli.name, 
SUM(TblRec.total) as Pay 
from TblRec 
left join TblCli on TblRec.id_cli = TblCli.id 
group by TblCli.name asc 

Sonuç

NAME Pay 
john 500 
peter 100 

iki farklı tablolar doğrudan ilişkisi bu iki sorguları katılmak ve bunun gibi bir sonuç almak gerekir ile vardır:

NAME  SUM PAY Difference 
john  1000 500   500 
peter  500 100   400 
Alicia 300 0   300 

Bunu gerçekleştirmek nasıl?

cevap

0

Aşağıdakiler işe yaramalıdır. senin verilerle Demosu: http://sqlfiddle.com/#!9/ba6264/6

ederim yapmanız tavsiye Kişisel Cevap Mükemmeldi, TblCli.id yerine TblCli.name

select A.name, sum , IFNULL(pay,0) as pay, (sum - IFNULL(pay,0)) Difference FROM 
    (select TblC.name, 
    SUM(TblC.total) as Sum 
    from TblC 
    left join TblCli on TblC.id_cli = TblCli.id 
    group by TblCli.name) A 
LEFT JOIN 
    (select TblCli.name, 
    SUM(TblRec.total) as Pay 
    from TblRec 
    left join TblCli on TblRec.id_cli = TblCli.id 
    group by TblCli.name) B 
ON A.name = B.name; 
+0

Rahul tarafından katılır Büyük çalışır. Gerçekten teşekkürler. –

+0

Harika. Eğer isterseniz, lütfen cevabı kabul edin – Rahul

İlgili konular