Office中国论坛/Access中国论坛

标题: 求SQL语句 [打印本页]

作者: anglecupid    时间: 2004-2-10 17:00
标题: 求SQL语句
家族       姓名    性别    年龄    存款
WWW      A        1      42     1000
WWW      B        1      89      800
WWW      C        1      31     1200
WWW      D        2      37      500
WWW      E        2      56      200
WWW      F        1      45     1900

这样一组数据。

如果想得到这样的查询结果,只有一条记录

家族       年龄    存款   男    女
WWW     **       **     *      *

其中,年龄、存款是上面年龄数据的求和,男、女分别是家族中男、女的人数

这个SQL语句该如何写呢?

作者: zhengjialon    时间: 2004-2-10 17:10
设这个表为TABLE1,做个合计查询就行了。
SELECT Table1.家族, Table1.性别, Sum(Table1.年龄) AS 年龄之Sum, Sum(Table1.存款) AS 存款之Sum
FROM Table1
GROUP BY Table1.家族, Table1.性别;

作者: anglecupid    时间: 2004-2-10 17:14
如果按您所说的,男、女的人数并没有被统计出来啊!!这里才是关键啊
作者: zhengjialon    时间: 2004-2-10 17:26
对不起,刚才没注意看。有点难度
作者: Roadbeg    时间: 2004-2-10 18:45
设表名为 test,
SELECT 家族,sum(存款) as 存款汇总,sum(年龄) as 年龄汇总,count(iif(性别=2,null,性别)) as 男,count(iif(性别=1,null,性别)) as 女 from test group by 家族
如果是 sql,你可能需要使用 case 语句代替 iif函数.
另外,在 access 中,你还可以使用 dcount 实现这个查询.
作者: zhengjialon    时间: 2004-2-10 18:50
以下是引用Roadbeg在2004-2-10 10:45:29的发言:
设表名为 test,
SELECT 家族,sum(存款) as 存款汇总,sum(年龄) as 年龄汇总,count(iif(性别=2,null,性别)) as 男,count(iif(性别=1,null,性别)) as 女 from test group by 家族
如果是 sql,你可能需要使用 case 语句代替 iif函数.
另外,在 access 中,你还可以使用 dcount 实现这个查询.


好!
我的思路一时还没转过来,比老兄你差远了!
作者: Roadbeg    时间: 2004-2-10 18:57
郑兄过谦了.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3