[access查询]交叉报表处理实例
时 间:2008-06-14 08:40:57
作 者:邹建 ID:43 城市:江阴
摘 要:交叉报表处理实例
正 文:
两种比较特殊的交叉数据报表处理
--示例数据:
Create TABLE tb(ID varchar(10),NGNO char(1),QTY int)
Insert tb Select '200505','A',10
UNION ALL Select '200505','B',20
UNION ALL Select '200505','C',30
UNION ALL Select '200506','B',10
UNION ALL Select '200506','C',20
UNION ALL Select '200506','D',30
UNION ALL Select '200506','E',40
GO
交叉数据报表要求1:
按ID列分组,将NGNO列水平显示为多列,但每列由NGNO的大小顺序决定,而不是由NGNO的值决定,对于示例数据,最终的结果要求如下:
ID col1 col2 col3 col4
---------- ------- ------- ------- -------
200505 A(10) B(20) C(30)
200506 B(10) C(20) D(30) E(40)
--实现代码
DECLARE @i varchar(10),@s nvarchar(4000)
Select TOP 1 @s='',@I=COUNT(*) FROM tb
GROUP BY ID
orDER BY COUNT(*) DESC
WHILE @i>0
Select @s=N',col'+@i
+N'=ISNULL(MAX(CASE GID WHEN '+@i
+N' THEN QTY END),'''')'+@s,
@i=@i-1
EXEC(N'Select ID'+@s+N'
FROM(
Select ID,QTY=RTRIM(NGNO)+QUOTENAME(QTY,N''()''),
GID=(Select COUNT(DISTINCT NGNO) FROM TB Where ID=a.ID AND NGNO<=a.NGNO)
FROM tb a
)a GROUP BY ID')
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 【Access高效办公】统计当...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)

学习心得
最新文章
- 【Access财务分析示例】按月统...(08.08)
- Access查询里使用Date()...(08.05)
- 关于Access交叉表查询生成的统...(08.02)
- ACCESS做的工作日常小工具_纸...(07.30)
- Access快速开发平台进销存教程...(07.28)
- 关于Access快速开发平台2.6...(07.23)
- 【Access交叉表查询】按百分比...(07.21)
- VBA编程-ADO-关于对象早晚期...(07.17)
- Access快速开发平台--frm...(07.15)
- 1行代码实现Access与SQL ...(07.09)