首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL有关问题(按类别查询,统计数据,有加有减)-Access数据库

2012-01-10 
SQL问题(按类别查询,统计数据,有加有减)-Access数据库求SQL语句;不知道可不可以写出来;姓名类型统计数量A1

SQL问题(按类别查询,统计数据,有加有减)-Access数据库
求SQL语句;不知道可不可以写出来;
姓名   类型   统计数量
A           1       10
A           2       5
B           1       10
B           2       5

要求求出
姓名   统计数量
A           5
B           5

其中按姓名进行统计的,但是同时还需要按类型区分加减,如果类型为1,则累加,如果类型为2,则需要减去;

用的Access数据库;

[解决办法]
select 姓名,sum(case 类型 when 1 then 统计数量 else -统计数量 end) from 表 group by 姓名
[解决办法]
create table #temp
(姓名 varchar(10),
类型 int,
统计数量 int
)
insert into #temp
select 'A ', '1 ', '10 ' union all
select 'A ', '2 ', '5 ' union all
select 'B ', '1 ', '10 ' union all
select 'B ', '2 ', '5 '
select * from #temp


select 姓名,sum(case 类型 when 1 then 统计数量 when 2 then -统计数量 else 0 end) as 统计数量
from #temp
group by 姓名

-------------
姓名 统计数量
A 5
B 5
[解决办法]
呵呵,我还是晚了一步~:)
[解决办法]
上面是在SQL Server 2000里的语法,以下SQL语句适用于Access:

SELECT [姓名],sum(iif([类型]=1,统计数量,-统计数量)) FROM T1 group by [姓名]

[解决办法]
学习~
[解决办法]
Access支持iif函数,以上语句测试环境为 Access 2000 SP3 。

热点排行
Bad Request.