日期:2014-05-17  浏览次数:20671 次

求指点一个SQL查询语句
现在有3个表,分别是人员表,周期表和周报表格式大体是这样的
  人员表                        周期表               周报表
MemberID    Name             Week         ID  MemberID  Week
1                   甲                  1            1        1            1
2                   乙                  2            2        1            2  
3                   丙                  3            3        1            3
                                           4            4        2            1
我现在想查出所有人每人人总共写的周报数,没写的周报数,到底怎样才能都查出来呢
MemberID  已写  未写

------解决方案--------------------
select a.MemberID,count(c.id) as  已写 ,count(*) -  count(c.id) as 未写
from 人员表 a cross join 周期表 b
left join 周报表 c
on c.MemberID = a.MemberID  
and c.Week = b.Week
group by a.MemberID