求SQL子查询语句

来源:百度知道 编辑:UC知道 时间:2024/09/28 06:36:12
环境:asp+access
现在有两个表,一个表是a表,假设有以下记录:
userid name
1 张三
2 李四

一个表是b表,假设有以下记录
userid money freeze
1 100 true
1 30 true
2 50 false
1 100 false
2 30 true

请问如何写一句SQL子查询语句,在列出a表的用户的同时,统计出此用户在b表里freeze值为true的money的总数.最好能详细解释一下,谢谢!!
1.假设添加一新用户“王五”,而此时b表中没有王五的记录,希望得到的结果是
userid name money
1 张三 130
2 李四 30
3 王五 0

2.排序怎么写?比如就按userid排倒排3-2-1

照着这个思路我写了个SQL:
Select a.UserID, a.Name, Sum(b.Money) As Money
From a, b
Where a.DeptID=1 And b.UserID=a.UserID
Group By a.UserID, a.Name
不知道为什么查询不到结果。请指教~~

====================

a.deptid=1是用户组的ID,问题里忘了写了
另:freeze应该加在那个部分?能否帮我写一下?

========================

谢谢,再帮我看一下,现在是B表里有数据的用户可以查出来,但B表里没有数据的用户查不出来,比如“王五”这个用户的数据。
附最后的SQL语句
Select a.UserID, a.UserName, Sum(b.Moneys) As Moneys
From a, b

不用子查询就能出结果啊
select a.userid,a.name,sum(money) as money from a, b where a.userid=b.userid and freeze='true' group by a.userid,a.name
------------------
排序就在语句后加
order by a.userid asc

你查不到结果?
这个a.DeptID=1 是什么?不会是写错了吧
如果这个代表freeze的话。。。。一定要放到表b内!

==========================
Select a.UserID, a.Name, Sum(b.Money) As Money
From a, b
Where a.DeptID=1 And b.UserID=a.UserID And b.freeze='true'
Group By a.UserID, a.Name
order by a.userid asc