如何在MS-Sql server 中用数据库语句得到汇总行
来源:互联网 发布:node.js是后端吗 编辑:程序博客网 时间:2024/05/17 11:32
create table CustomerDetail
(
CustomerID varchar(30) primary key,
CustomerName varchar(30)
)
create table OrderDetail
(
OrderID int identity,
CreatedTime Datetime,
OrderCost Decimal(20,2),
CustomerID varchar(30) foreign key references CustomerDetail(CustomerID),
)
--drop table OrderDetail
--drop table CustomerDetail
--select * from orderdetail,CustomerDetail where orderdetail.CustomerID = CustomerDetail.CustomerID
insert into CustomerDetail values ('A0000', 'Blake Ma')
insert into CustomerDetail values ('A0001', 'Eric Zhou')
insert into CustomerDetail values ('A0003', 'Candy Wang')
insert into CustomerDetail values ('A0004', 'Candy Wang2')
insert into orderdetail values ('2009-08-09', 10.20,'A0000')
insert into orderdetail values ('2009-08-09', 11.20,'A0000')
insert into orderdetail values ('2009-08-09', 12.20,'A0000')
insert into orderdetail values ('2009-08-09', 13.20,'A0000')
insert into orderdetail values ('2009-09-09', 14.20,'A0001')
insert into orderdetail values ('2009-09-09', 15.20,'A0001')
insert into orderdetail values ('2009-09-09', 16.20,'A0001')
insert into orderdetail values ('2009-09-09', 17.20,'A0001')
insert into orderdetail values ('2009-10-09', 18.20,'A0003')
insert into orderdetail values ('2009-10-09', 19.20,'A0003')
insert into orderdetail values ('2009-10-09', 20.20,'A0003')
insert into orderdetail values ('2009-10-09', 21.20,'A0003')
--注意下面语句中用到的grouping 和 end as ,以及 with rollup,所有的Customer ID 被分类,而且也包含单个用户统计和全部统计,这在很多报表里面是相当有用的,我们可以在gridview里面写对应的事件代码,可以对行进行相应的操作(加粗,颜色 等)
create procedure GetOrderDetail
as
-- set nocount on 会消除 row affected 的一些信息,这对于某些情况下的优化是有好处的
set nocount on
select
case grouping(cd.CustomerID) when 0 then cd.CustomerID else '(Total)' end as MyCustID,
case grouping(od.OrderID) when 0 then od.OrderID else -1 end as MyOrderID, --
sum(od.OrderCost) as Value
from OrderDetail od ,CustomerDetail cd
where od.CustomerID = cd.CustomerID
group by cd.CustomerID, od.OrderID with rollup
转自msdn 技术文章
- 如何在MS-Sql server 中用数据库语句得到汇总行
- MS SQL Server 数据库分离-SQL语句
- 如何自动发布MS SQL SERVER数据库?
- SQL+Server+数据库基本SQL语句汇总
- SQL+Server+数据库基本SQL语句汇总
- 如何在Oracle SQL Developer 中连接MS SQL Server、MySQL数据库
- 如何在Oracle SQL Developer 中连接MS SQL Server、MySQL数据库
- 如何在Oracle SQL Developer 中连接MS SQL Server、MySQL数据库
- 如何在Oracle SQL Developer 中连接MS SQL Server、MySQL数据库(转)
- ms sql常用语句汇总
- 如何在Sql Server 2000中用一条语句实现树的查询
- 如何在rails中正确使用MS Sql Server 2000做为数据库服务器
- 如何在ADO中用SQL语句来查看Access数据库中的表名称
- 如何将 Excel 数据导入MS SQL Server 数据库
- 在Linux下访问MS SQL Server数据库(转)
- 在Linux下访问MS SQL Server数据库
- 在Linux下访问MS SQL Server数据库
- [转]在Linux下访问MS SQL Server数据库
- 【转】javascript操作cookies 以及 正确使用cookies的属性
- @Control详解--Spring2.5
- Struts2之获得地址栏传入参数
- Invalid sharing flag
- 只有偏执狂才能生存!
- 如何在MS-Sql server 中用数据库语句得到汇总行
- replace替换用法
- WinCE驱动调试助手V2.5
- 值得收藏的vs技巧
- 呼叫中心系统组成
- 090902项目进展:smb资源的深层递归4,wps分析
- Linux内核编译
- java虚拟机基本概念
- T1