fastreport 简单问题,高手请进,谢谢

maycy 2008-05-30 10:07:01
我有一个表

分类1 分类2 分类3 个数
a1 a2 急 5
a1 a2 慢 2
a1 b2 急 1
a1 b2 慢 9
b1 c2 急 2
b1 c2 慢 3

怎样得到这样的报表格式呢?
分类1 分类2 急 慢
a1 a2 5 2
a1 b2 1 9
b1 c2 2 3
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaospring 2008-05-30
  • 打赏
  • 举报
回复
幫頂樓上的!!
GDTOPONE 2008-05-30
  • 打赏
  • 举报
回复

----建测试数据表
create table ab([分类1] varchar(10),[分类2] varchar(10),[分类3] varchar(10),[个数] int)
insert into ab
select 'a1','a2','急',5
union all select 'a1','a2','慢',2
union all select 'a1','b2','急',1
union all select 'a1','b2','慢',9
union all select 'b1','c2','急',2
union all select 'b1','c2','慢',3

---提取数据
select [分类1],[分类2],sum([急]) as 急,sum([慢]) as 慢 from(
select [分类1],[分类2],sum([个数]) as 急 ,0 as 慢 from ab where [分类3]='急' GROUP BY [分类1],[分类2]
union all
select [分类1],[分类2],0 as 急,sum([个数]) as 慢 from ab where [分类3]='慢' GROUP BY [分类1],[分类2])
m GROUP BY [分类1],[分类2]


---结果
a1 a2 5 2
a1 b2 1 9
b1 c2 2 3

Corn1 2008-05-30
  • 打赏
  • 举报
回复
典型的交叉表。
select 分类1, 分类2, sum(case 分类3 when '急' then 个数 else 0 end) as 急, sum(case 分类3 when '慢' then 个数 else 0 end) as 慢 from Table1 group by 分类1, 分类2
maycy 2008-05-30
  • 打赏
  • 举报
回复
这样就是很麻烦,可不可以直接在报表生成呢?
smilyvm 2008-05-30
  • 打赏
  • 举报
回复
帮顶
最好用个临时表先查询出你要的格式,然后报表中连临时表
maycy 2008-05-30
  • 打赏
  • 举报
回复
谢谢,解决了,结帖

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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