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

求一个sql---在线等马上给分!!!
表:xiaoshou
 字段:id ,username
 数据:1    张三
       2    李四
表:dingdan
 字段:id ,ordertotal
      1     100
      1      50
 
sql:select username,sum(ordertotal) as ordertotal from xiaoshou left outer join dingdan on xiaoshou.id=dingdan.id where ordertotal>0 group by username
 
查询结果:username   ordertotal
            张三         150

希望得到的结果:username  ordertotal
              张三        150
              李四        0
即使“李四”没有数据也要显示李四的名字,且ordertotal为0。

多谢!!

------解决方案--------------------
select username,isnull(sum(ordertotal),0) as ordertotal from xiaoshou left outer join dingdan on xiaoshou.id=dingdan.id group by username
------解决方案--------------------

mysql> select * from xiaoshou;
+------+----------+

------解决方案--------------------
 id   
------解决方案--------------------
 username 
------解决方案--------------------

+------+----------+

------解决方案--------------------
    1 
------解决方案--------------------
 zhangsan 
------解决方案--------------------


------解决方案--------------------
    2 
------解决方案--------------------
 lisi     
------解决方案--------------------

+------+----------+
2 rows in set (0.00 sec)

mysql> select * from dingdan;
+------+------------+

------解决方案--------------------
 id   
------解决方案--------------------
 ordertotal 
------解决方案--------------------

+------+------------+

------解决方案--------------------
    1 
------解决方案--------------------
        100 
------解决方案--------------------


------解决方案--------------------
    1 
------解决方案--------------------