求Access中的一个关于汇总的SQL语句。急~~~~~在线等~
在access里,有这样一个G表:
Name Type Number
-------------------
A 1 200
A 0 150
B 1 450
A 1 50
B 0 250
C 1 1000
从上表,我要得出这样的数据
Name Number
-------------
A 100
B 200
C 1000
逻辑计算的过程是:在所有Name=A的行中,Type=1的数据全部相加,然后减去所有Type=0的数据,得出上面列出来的A的Number值,B也同样经过这样的计算,C在表中只有一行数据,所以Number值没有变化。
请问:要实现这个逻辑计算过程的SQL语句怎么写?请注意,是在Access中而不是在SQL SERVER中。
谢谢大家。
问题点数:100、回复次数:6Top
1 楼singlepine(小山)回复于 2006-03-14 22:41:36 得分 70
select Name,sum(case Type when 1 then Number else -Number end) from grade group by NameTop
2 楼marist(我想学编程)回复于 2006-03-14 22:47:58 得分 0
TO 小山:access是不是不支持case?access的查询里报语法错误。Top
3 楼singlepine(小山)回复于 2006-03-14 22:49:11 得分 0
select Name,sum(iif(Type=1,Number,-Number)) from grade group by NameTop
4 楼califord(远方)回复于 2006-03-14 22:50:19 得分 30
支持的呀Top
5 楼marist(我想学编程)回复于 2006-03-14 22:54:45 得分 0
TO 小山:查询出来的都是负数。。还是不行啊。Top
6 楼marist(我想学编程)回复于 2006-03-15 15:35:55 得分 0
已经解决了,用下面的语句可以实现:
select name,sum([number]) from (select [name],[number] from 表 where type=1 union all select [name],[number]*-1 from 表 where type = 0) group by name
谢谢大家。Top




