SQL 数据增加 小计 及 合计行
2009-07-24 22:48
495 查看
CREATE TABLE [dbo].[A](
[SalesOrg] [nvarchar](4) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[SalesGroup] [nvarchar](20) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[DocumentType] [nvarchar](25) COLLATE SQL_Latin1_General_CP850_BIN2 NULL,
[DocumentName] [nvarchar](20) COLLATE SQL_Latin1_General_CP850_BIN2 NULL,
[CSName] [nvarchar](50) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[Qty] [int] NULL,
[Amount] [numeric](38, 2) NULL
) ON [PRIMARY]
select case grouping(DocumentType)
when 1 then 'Total'
when 0 then
case grouping(SalesOrg)
when 1 then DocumentType + ' SubTotal'
when 0 then DocumentType
end
end DocumentType,
SalesOrg,SalesGroup,DocumentName,CSName,sum(Qty) qty,sum(Amount) Amt
from [A]
group by DocumentType, SalesOrg,SalesGroup,DocumentName,CSName with rollup
having grouping(SalesOrg) + grouping(SalesGroup) + grouping(DocumentType)
+grouping(DocumentName)+grouping(CSName) = 0
or grouping (SalesOrg) + grouping(SalesGroup)+grouping(DocumentName)+grouping(CSName) = 4
数据如下:
AA S1 G1 A Helen 3 100
AA S2 G1 A Lui 2 200
AA SubTotal NULL NULL NULL NULL 5 300
BB S1 G1 A Helen 3 100
BB S2 G1 A Lui 2 100
BB SubTotal NULL NULL NULL NULL 5 200
Total NULL NULL NULL NULL 10 500
[SalesOrg] [nvarchar](4) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[SalesGroup] [nvarchar](20) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[DocumentType] [nvarchar](25) COLLATE SQL_Latin1_General_CP850_BIN2 NULL,
[DocumentName] [nvarchar](20) COLLATE SQL_Latin1_General_CP850_BIN2 NULL,
[CSName] [nvarchar](50) COLLATE SQL_Latin1_General_CP850_BIN2 NOT NULL,
[Qty] [int] NULL,
[Amount] [numeric](38, 2) NULL
) ON [PRIMARY]
select case grouping(DocumentType)
when 1 then 'Total'
when 0 then
case grouping(SalesOrg)
when 1 then DocumentType + ' SubTotal'
when 0 then DocumentType
end
end DocumentType,
SalesOrg,SalesGroup,DocumentName,CSName,sum(Qty) qty,sum(Amount) Amt
from [A]
group by DocumentType, SalesOrg,SalesGroup,DocumentName,CSName with rollup
having grouping(SalesOrg) + grouping(SalesGroup) + grouping(DocumentType)
+grouping(DocumentName)+grouping(CSName) = 0
or grouping (SalesOrg) + grouping(SalesGroup)+grouping(DocumentName)+grouping(CSName) = 4
数据如下:
AA S1 G1 A Helen 3 100
AA S2 G1 A Lui 2 200
AA SubTotal NULL NULL NULL NULL 5 300
BB S1 G1 A Helen 3 100
BB S2 G1 A Lui 2 100
BB SubTotal NULL NULL NULL NULL 5 200
Total NULL NULL NULL NULL 10 500
相关文章推荐
- SQL 数据增加 小计 及 合计行
- sql 查询数据小计 合计
- SQL查询一批数据,怎么在最后一行增加个合计
- 用SQL实现统计报表中的(小计)和(合计)
- 使用SQL实现小计,合计以及排序
- sql Asp.net 生成 小计 合计
- 【SQL】在已经建成的数据表中增加…
- sql增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表
- mysql命令行命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。。
- sql 小计 合计 排序
- Oracle分组扩展函数的使用(主要增加小计及合计金额)
- 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法
- C#中SqlCommandBuilder批量数据增加修改
- sql实现报表加小计、合计
- SQl 事务增加数据
- ListUI中增加了分录的字段后,query中的sql语句显示出来的是按照顺序显示出来的,而ListUI中显示出来的数据确实乱的
- 用SQL进行报表的小计和合计
- postgre数据库修改使主键自动增加(针对其他sql导出来的数据)
- Sql分组合计小计查询
- mysq对数据的l查询,增加,修改和删除sql语句