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 空行也应该显示。我尽力了我的水平,但无法达到。

请帮我.....

4

1 回答 1

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
于 2012-06-19T15:49:04.977 回答