SQL 分组统计之------汇总乘积
2005-03-12 14:29
411 查看
表 TableOne
要求:按照Catalog来汇总value的乘积
自定义函数中的输入参数只能使用标量值,不能把table当参数输入!
而存储过程的输入参数则不同:
数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字
因为自定义函数可以返回一个表。
函数中可以使用函数
函数中不能使用存储过程
存储过程中可以使用函数
但存储过程中不能使用存储过程
事实上,存储过程能使用存储过程,比如这样:在procedure2 里面可以这样使用exec Procedure1,不过这样使用意义不是很大
创建一个自定义标量值函数
用于计算某个catalog的乘积
ALTER FUNCTION dbo.getTimeByCatalog
(
@Catalog varchar(100)
)
RETURNS real
AS
BEGIN
Declare @Timeall2 real
set @Timeall2 = 1
select @Timeall2 = @Timeall2*cast(ID as float) from TableOne
where Catalog=@catalog
return @Timeall2
END
创建存储过程
ALTER PROCEDURE dbo.RockTest2
AS
begin
create table #Temp2
(
Catalog varchar(100)
)
insert into #Temp2 (Catalog) select distinct catalog from TableOne
select Catalog,dbo.getTimeByCatalog(catalog)
from #Temp2
end
这样就可以得到一个乘积汇总的数据了。
当然如果还要加限制条件,可以把函数和存储过程中的TableOne换成一个带表值的自定义函数
如果大家还有好的办法,请指教12。
Value | Catalog |
1 | CatalogA |
2 | CatalogB |
3 | CatalogB |
3 | CatalogA |
4 | CatalogA |
6 | CatalogB |
自定义函数中的输入参数只能使用标量值,不能把table当参数输入!
而存储过程的输入参数则不同:
数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字
因为自定义函数可以返回一个表。
函数中可以使用函数
函数中不能使用存储过程
存储过程中可以使用函数
但存储过程中不能使用存储过程
事实上,存储过程能使用存储过程,比如这样:在procedure2 里面可以这样使用exec Procedure1,不过这样使用意义不是很大
创建一个自定义标量值函数
用于计算某个catalog的乘积
ALTER FUNCTION dbo.getTimeByCatalog
(
@Catalog varchar(100)
)
RETURNS real
AS
BEGIN
Declare @Timeall2 real
set @Timeall2 = 1
select @Timeall2 = @Timeall2*cast(ID as float) from TableOne
where Catalog=@catalog
return @Timeall2
END
创建存储过程
ALTER PROCEDURE dbo.RockTest2
AS
begin
create table #Temp2
(
Catalog varchar(100)
)
insert into #Temp2 (Catalog) select distinct catalog from TableOne
select Catalog,dbo.getTimeByCatalog(catalog)
from #Temp2
end
这样就可以得到一个乘积汇总的数据了。
当然如果还要加限制条件,可以把函数和存储过程中的TableOne换成一个带表值的自定义函数
如果大家还有好的办法,请指教12。
相关文章推荐
- (转)GROUPING …. WITH ROLLUP 做分组汇总 统计 (T-SQL)
- (转)GROUPING …. WITH ROLLUP 做分组汇总 统计 (T-SQL)
- sql语句按月份进行汇总分组
- 数据分组--聚合函数使用范例(小计,统计,汇总)实例
- oracle分组统计sql
- sql分组统计多列值
- sql 分组统计的例子【转】
- sql 分组统计查询并横纵坐标转换
- sql分组汇总
- 在SQL分组统计中怎么求出:A列最大值(MAX)对应行B列的值 未验证
- sql简单实用的统计汇总案例参考
- SQL的汇总统计SELECT语句
- mysql 分组统计(直播内容状态,带上内容id),count case when group_concat sql
- sql 分组统计的例子
- 关于SQL分组统计
- SQL分组多列统计(GROUP BY后按条件分列统计)
- 分组统计并计算每组数量sql
- sql分组统计语句(
- 报表查询sql,分组后汇总数量和计算总额
- SQL 分组统计 之 同字段不同数据分别统计