2012-06-19 31 views
0

與下面的查詢我能夠只取15行的幫助,但實際行是16 一行是空顯示空行加入

那麼,如何可以獲取該行還總我應該得到16行請幫我....

select p.partnerid,p.name,count(*) as accounts,sum(c.amount) as amount,sum(c.netamt) as netamt, 
sum(c.netamt - c.amount) as interest, 
sum(case when c.installment = 20 then c.amount else 0 end) as Twenty, 
sum(case when c.installment = 10 then c.amount else 0 end) as Ten, 
sum(case when c.installment = 5 then c.amount else 0 end) as Five, 
sum(case when c.installment = 2 then c.amount else 0 end) as Two 
from partnerinfo p left outer join customerinfo c on p.partnerid = c.partnerid 
where c.startdate >= '2011-3-15' and c.startdate <= '2012-12-30' and p.manager=1 group by p.partnerid 

即使我改變從2011-3-15日期爲2012-3-15空行應該顯示。 我盡我所能,但無法實現。

請幫我.....

+0

哪個欄目都是空? – somnath

+0

你如何獲取這些數據? mysql不會在左連接的情況下創建一個全空的行。 –

+0

我們沒有在customerinfo表中有任何行。當沒有行時,我需要顯示空行 – varaprasadreddy

回答

0

試試這個:

select p.partnerid,p.name,count(*) as accounts,sum(c.amount) as amount,sum(c.netamt) as netamt, 
sum(c.netamt - c.amount) as interest, 
sum(case when c.installment = 20 then c.amount else 0 end) as Twenty, 
sum(case when c.installment = 10 then c.amount else 0 end) as Ten, 
sum(case when c.installment = 5 then c.amount else 0 end) as Five, 
sum(case when c.installment = 2 then c.amount else 0 end) as Two 
from partnerinfo p left outer join customerinfo c on p.partnerid = c.partnerid 
where (c.startdate is null OR (c.startdate >= '2011-3-15' and c.startdate <= '2012-12-30')) 
and (p.manager is null OR p.manager=1) 
group by p.partnerid 
+0

嗨somnath與你的答覆的幫助我只能得到,如果經理是空的,但如果我有夥伴爲null,他們不顯示。請幫幫我。 – varaprasadreddy

+0

你的意思是partnerinfo也可以有NULL?哪一列可以是NULL或是整行可能不存在? – somnath

+0

整行可能不存在,並且在特定時間所有列將存在,但在日期更改時應該顯示爲空。 – varaprasadreddy