数据库中有这样两个表
Record
Id type_id amount years months
1 1 100.00 2010 2
2 1 50.00 2010 2
3 3 200 2010 2
Type
Id type_name
1 A
2 B
3 C
报表条件如下:
根据检索条件(years和months)检索出满足条件(Record表的years和months)
的每一个Type的amount合计。结果集如下所示:
Report
Type_name sum_amount
A 150.00
B 0
C 50.00
我目前的做法是在数据库中建一个视图,得到所有的合计信息,SQL代码如下:
Select Type.Type_name,TypeAmount_Tmp.sum_amount, TypeAmount_Tmp.Years,
TypeAmount_Tmp.months
(
Select Record.type_id, sum(Record.amount) As sum_amount,
Record.years, Record.months
Record
From Record
Group by Record.type_id,Record.years, Record.months
) As TypeAmount_Tmp
Left Outer Join Type
On TypeAmount_Tmp. type_id = Type.id
然后在程序中,根据(years和month)检索条件检索相应数据。
目前这个方案有个问题就是:
因为Record没有Type=B的数据,所以通过视图得到的报表没有Type=B的数据,如下面:
Type_name sum_amount
A 150.00
C 50.00
而报表要像前面提到的Report那样展示。
请教各位高手,有什么好的办法,是哪块出现了问题,欢迎讨论。