[求助]数据统计问题

snower01 2007-06-19 12:11:25
在数据库中字段如下,调试环境asp+access:
id t_name 时间 数值1 数值2 合计
1 a 2007-6 5 4 9
2 a 2007-5 3 7 10
3 b 2007-6 6 6 12
4 b 2007-5 7 7 14

怎样通过一句sql,将数据显示为
姓名 5月 6月 合计
a 10 9 19
b 14 12 26
谢谢

...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2007-06-21
  • 打赏
  • 举报
回复
如果需要的结果有规律,可以用VBA+SQL动态生成你需要的SQL语句。
OracleRoob 2007-06-21
  • 打赏
  • 举报
回复
Access使用的是Jet-SQL。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=

OracleRoob 2007-06-21
  • 打赏
  • 举报
回复
--用IIF(),相当于SQL Server中的Case when

--对于别名以特殊字符或数字开头的,需要加()

select
t_name,
sum(iif(时间='2007-5',合计,0)) as [5月],
sum(iif(时间='2007-6',合计,0)) as [6月],
sum(合计) as 总计
from 表名
where left(时间,2)=2007
group by T_name
wwwwb 2007-06-19
  • 打赏
  • 举报
回复
如2月份多,用VBA动态生成SQL语句
wwwwb 2007-06-19
  • 打赏
  • 举报
回复
还差一个姓名表,如为B1
SELECT * FROM B1 LEFT JOIN (
select t_name,sum(iif(时间='2007-5',合计,0)) as 5月,
sum(iif(时间='2007-6',合计,0)) as 6月,sum(合计) as hj
from tt group by T_name) A
ON A.T_NAME=B1.T_NAME
wwwwb 2007-06-19
  • 打赏
  • 举报
回复
select t_name,sum(iif(时间='2007-5',合计,0)) as 5月,
sum(iif(时间='2007-6',合计,0)) as 6月,sum(合计) as hj
from tt group by T_name

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧