日期:2014-05-16  浏览次数:20982 次

access外连接中查询的问题!
a表中有所有部门列表,b表中只是有金额的部门列表。

SQL code
SELECT a.部门名称,
         b.日期,
         b.金额
FROM  a 
left outer join b
on ( a.部门名称 = b.部门  )


这样写的查询结果,能返回a表中的所有部门,和相关金额日期信息。

但是如果写:

SQL code
SELECT a.部门名称,
         b.日期,
         b.金额
FROM  a 
left outer join b
on ( a.部门名称 = b.部门  )
where (b.日期 between :v_date1 and :v_date2 )


加个了日期条件,这时就只返回存在于b中的部门了。外连接就不起作用了。

请问是怎么回事?

------解决方案--------------------
SELECT a.部门名称,
b.日期,
b.金额,
iif((b.日期 between :v_date1 and :v_date2 ),b.金额,0)
FROM a 
left outer join b
on ( a.部门名称 = b.部门 )