分组统计及字段显示的问题

ligaru 2006-06-09 11:03:25
表的结构和数据如下:
id name Item Color Quantity
1 11 Table Blue 124
2 22 Table Red 223
3 33 Chair Blue 101
4 44 Chair Red 210
5 55 Table Blue 126
要得到的分组统计及显示字段如下:
Item Color name QtySum
Chair Blue 33 101
Chair Red 44 210
Chair ALL -- 311
Table Blue 11 124
Table Blue 55 126
Table Red 22 223
Table ALL -- 473
ALL ALL -- 784
...全文
235 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ligaru 2006-06-09
  • 打赏
  • 举报
回复
TO zlp321002(龙卷风2006):
我也看了联机帮助,里面显示的是3个字段,我现在要显示的是4个字段.而且不能对name进行统计的.
paoluo 2006-06-09
  • 打赏
  • 举报
回复
RollUp不是特別熟悉


Create Table TEST
(id Int,
name Varchar(10),
Item Varchar(10),
Color Varchar(10),
Quantity Int)
Insert TEST Select 1, '11', 'Table', 'Blue', 124
Union All Select 2, '22', 'Table', 'Red', 223
Union All Select 3, '33', 'Chair', 'Blue', 101
Union All Select 4, '44', 'Chair', 'Red', 210
Union All Select 5, '55', 'Table', 'Blue', 126
Go
Select * From(
Select
(Case When Grouping(Item)=1 Then 'ALL' Else Item End) As Item ,
(Case When Grouping(Color)=1 Then 'ALL' Else Color End) As Color,
(Case When Grouping(Color)=1 Then '--' Else name End) As name,
SUM(Quantity) As QtySum
From TEST
Group By Item,Color,name
With RollUp) A
Where name Is Not Null
Go
Drop Table TEST
GO
--Result
/*
Item Color name QtySum
Chair Blue 33 101
Chair Red 44 210
Chair ALL -- 311
Table Blue 11 124
Table Blue 55 126
Table Red 22 223
Table ALL -- 473
ALL ALL -- 784
*/
zlp321002 2006-06-09
  • 打赏
  • 举报
回复
--参考上面的例子........
zlp321002 2006-06-09
  • 打赏
  • 举报
回复
---该问题是一个典型的使用Rollup生成结合的例子,联机帮助也有相关介绍!


-测试环境
declare @Inventory Table (Item varchar(20),Color varchar(20),Quantity money)
insert into @Inventory select 'Table','Blue',124
insert into @Inventory select 'Table','Red' ,223
insert into @Inventory select 'Chair','Blue',101
insert into @Inventory select 'Chair','Red' ,210

--查询
SELECT CASE WHEN (GROUPING(Item) = 1) THEN '总计'
WHEN (GROUPING(Color) = 1) THEN Item+'小计'
ELSE ISNULL(Item, 'UNKNOWN')
END AS Item,
CASE WHEN (GROUPING(Color) = 1) THEN ''
ELSE ISNULL(Color, 'UNKNOWN')
END AS Color,
SUM(Quantity) AS QtySum
FROM @Inventory
GROUP BY Item, Color WITH ROLLUP

--结果
Item Color QtySum
------------------------ -------------------- ---------------------
Chair Blue 101.0000
Chair Red 210.0000
Chair小计 311.0000
Table Blue 124.0000
Table Red 223.0000
Table小计 347.0000
总计 658.0000

(所影响的行数为 7 行)
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 《MCGS调试助手-V2.3:深入解析与应用》 MCGS(Made in China for Graphic System)作为在工业自动化领域内得到广泛应用的组态软件,凭借其卓越的图形化编程技术以及全面的设备驱动兼容性,让使用者无需深入探究底层编程语言,即可迅速构建监控系统。MCGS调试助手V2.3是这一系列软件的更新迭代版本,致力于为使用者创造一个更加高效且便利的调试氛围。该版本正式推出时间为2022年4月13日,内含两个核心执行单元:MCGS调试助手_V2.3.apk与MCGS调试助手_V2.3.exe。前者适配于Android平台,后者则面向Windows系统,这反映出MCGS调试助手不仅聚焦于台式机平台,同时亦充分顾及了移动设备的使用情境,从而拓宽了其应用范畴。 MCGS调试助手的关键功能囊括: 1. **即时监控**:借助可视化界面,使用者能够即时掌握设备运行状况,涵盖数据流转、警报通报等资讯,显著增强了监控效能。 2. **仿真检测**:在正式实施之前,调试助手提供仿真平台,使用者可预设多样化工况,检测系统的响应机制和处理效能,确保程序的稳固性与精准度。 3. **问题排查**:内嵌的问题排查工具能够协助使用者迅速识别并处理系统中出现的故障,缩减停机时长,提升生产效能。 4. **设备互联**:MCGS兼容多种工业通讯协议,例如MODBUS、OPC等,能与各类可编程逻辑控制器、感应器、执行器等硬件设备实现无隙对接,达成数据互通。 5. **编程脚本**:尽管MCGS以图形化操作为主,但也支援编程脚本的运用,针对复杂的逻辑管控,使用者可通过编写脚本来达成目标。 6...

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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