27,582
社区成员




--> 测试数据:#
if object_id('tempdb.dbo.#') is not null drop table #
create table #(Series int, Inv int, ABC int)
insert into #
select 1, 1, 26 union all
select 1, 1, 15 union all
select 1, 1, 37 union all
select 1, 1, 26 union all
select 1, 1, 32 union all
select 1, 1, 23 union all
select 1, 2, 29 union all
select 1, 2, 20 union all
select 1, 2, 23 union all
select 1, 2, 29 union all
select 1, 2, 23 union all
select 1, 2, 28 union all
select 1, 3, 27 union all
select 1, 3, 26 union all
select 1, 3, 26 union all
select 1, 3, 27 union all
select 1, 3, 26 union all
select 1, 3, 25 union all
select 1, 4, 30 union all
select 1, 4, 26 union all
select 1, 4, 29 union all
select 1, 4, 27 union all
select 1, 4, 24 union all
select 1, 4, 29 union all
select 1, 5, 21 union all
select 1, 5, 15 union all
select 1, 5, 29 union all
select 1, 5, 34 union all
select 1, 5, 29 union all
select 1, 5, 20
select Series, exp(sum(log(abc)))abc from # group by Series
/*
Series abc
----------- ----------------------
1 1.68743027138102E+42
*/
select Series, POWER(cast(10 as float),SUM(LOG10(ABC)))abc from # group by Series
/*
Series abc
----------- ----------------------
1 1.68743027138102E+42
*/
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([Series] int,[Inv] int,[ABC] int)
insert [tb]
select 1,1,26 union all
select 1,1,15 union all
select 1,1,37 union all
select 1,1,26 union all
select 1,1,32 union all
select 1,1,23 union all
select 1,2,29 union all
select 1,2,20 union all
select 1,2,23 union all
select 1,2,29 union all
select 1,2,23 union all
select 1,2,28 union all
select 1,3,27 union all
select 1,3,26 union all
select 1,3,26
declare @i decimal(38,0)
--38位不短了吧?
set @i=1
select @i=@i*[ABC] from [tb]
select @i
/*
----------------------------------------
1255647245683280486400
(所影响的行数为 1 行)
*/