数据查询,求效率更高的方法。该如何解决

数据查询,求效率更高的方法。
主表:a
id name did(部门id)
101 test1 1
102 test2 2
103 test3 1

附表:b (a表id每个月都有一条数据)
aid date month value
101 2011-1-1 1 111
101 2011-2-1 2 222
102 2011-1-1 1 1212
102 2011-2-1 2 2121
103 2011-1-1 1 1313
103 2011-2-1 2 2323

我现在要查询所有部门id为1的数据,并且时间范围从2011年1月到2011年5月,但是现在库里只有1月和2月的数据,所以我查询出来的结果也是只有1月和2月的数据,但是我想要的结果是,1-5月的数据都有,如果该月的数据在数据库中没有用空或0代替,如下:
101 test1 2011-1-1 1 111
101 test1 2011-2-1 2 222
101 test1 2011-3-1 3 0
101 test1 2011-4-1 4 0 
101 test1 2011-5-1 5 0
103 test3 2011-1-1 1 1313
103 test3 2011-2-1 2 2323
103 test3 2011-3-1 3 0
103 test3 2011-4-1 4 0 
103 test3 2011-5-1 5 0

我目前想到的方法是,用时间来循环,一个个查,但是貌似这样相率不高,so~ 求方法更好、效率更高的写法,还请各位帮忙!
 
我写的是存储过程,

------解决方案--------------------
话说LZ真喜欢用关键字做列名,建议改掉这个习惯,否则可能引起不必要的麻烦