日期:2014-05-18  浏览次数:20493 次

再求一SQL语句,续~~
表A
姓名   性别
张三   男
李四   男
王五   男
AA       男

表B
姓名   日期         数量
AA       2006-11-28   4
张三   2006-12-01   1
王五   2006-12-02   2
张三   2006-12-03   3


要求结果
姓名性别数量
AA       男   0或(空)
张三   男   4
李四   男   0或(空)
王五   男   2


表B没有李四

select   A.姓名,A.性别,SUM(B.数量)   from   A,B   WHERE   A.姓名=B.姓名   GROUP   BY   A.姓名,A.性别
WHERE   日期   > =   '2006-12-01 '
这样结果没有AA和李四的(刚才已提问一个,已解决如下)

select   A.姓名,A.性别,SUM(B.数量)  
from   A   left   join   B   on   A.姓名=B.姓名  
WHERE   日期   > =   '2006-12-01 '
GROUP   BY   A.姓名,A.性别
这样的结果没有AA

该怎么写?


------解决方案--------------------
select A.姓名,A.性别,T.数量
from A
left join
(select 姓名,sum(数量) as 数量 from B where 日期> '2006-12-01 ' group by 姓名) T
on A.姓名=T.姓名