关于多表联合查询的有关问题

关于多表联合查询的问题
我有三个表,想从中得到一个数据:
A表
id     XM     XB     CYRQ
1501290001      张三      男      2015-01-28
1501290002      李四      男      2015-01-29
B表
studyid      SFXMDM      CYRQ
1501290001     110035      2015-01-28
1501290001     110036      2015-01-28
1501290002     940210      2015-01-29
1501290002     940212      2015-01-29
C表
studyid      SFXMDM    XXDM
1501290001     110035     051416
1501290002     940210      051416
1501290002     940212      053123

最后想得到一个数据,就是A表存储着人员信息,B表示要做的项目的全部代码,C表储存着这个人已经做的项目,我想查询28号这一天有那些人没有把项目做完,结果应该是这样的:
1501290001      张三      男     110036
若是查询29号的话,应该无数据了.B表和C表都存在李四的SFXMDM的940210和940212.
请教各位老大应该用什么语句?
------解决思路----------------------
with a(id,xm,xb,cyrq) as
(
 select '1501290001','张三','男','2015-01-28'
     union all
 select '1501290002','李四','男','2015-01-29'
 ),b(studyid,sfxmdm,cyrq) as
(
 select '1501290001','110035','2015-01-28' union all
 select '1501290001','110036','2015-01-28' union all
 select '1501290002','940210','2015-01-29' union all
 select '1501290002','940212','2015-01-29'
),c(studyid,sfxmdm,xxdm) as
(
 select '1501290001','110035','051416' union all
 select '1501290002','940210','051416' union all
 select '1501290002','940212','053123'
)


select d.id,d.xm,d.sfxmdm    from 

(select a.id,a.xm,a.xb,b.sfxmdm from a inner join b on a.id=b.studyid)

as d where not exists(select * from c  where c.studyid=d.id and c.sfxmdm

=d.sfxmdm)

/*
id         xm      sfxmdm
-----------------------------
1501290001 张三 110036
------------------------------
*/