SQL数据库的聚合函数和子查询迭代求和(2)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL数据库 的聚合函数和子查询迭代求和(2)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:查询函数聚合数据库
黑客防线网安网讯:   中间一层的子查询如下:select  a.xh, ( select    sum (price)  from  t_product b  where  b.xh  <  a.xh)   as  totalprice , a.pricefrom  t_product a 最外面一层当然就是整个selec...

   中间一层的子查询如下:

select  a.xh, ( select    sum (price)  from  t_product b  where  b.xh  <  a.xh)   as  totalprice , a.price
from  t_product a

 

最外面一层当然就是整个select 语句了

在执行上面的SQL将会得到和图3 一样的查询结果了

如果读者不喜欢写太长的SQL 可以将部分内容写到函数里,代码如下:

create  function  mysum( @xh  int ,  @price  int )  returns  int
begin
   return  ( select 
          ( case  when  totalprice  is  null  then  @price    else  totalprice  end )  as  totalprice
          from  (  select    sum (price)  as  totalprice  from  t_product  where  xh  <  @xh ) x)
end

 

可使用下面的SQL 语句来使用这个函数:

select  xh, price, dbo.mysum(xh, price)   as  totalprice
from  t_product

 

在执行上面的SQL 后,将得出如图3 所示的查询结果。

建立t_product 表的SQL 语句(SQL Server 2005 )如下:

SET  ANSI_NULLS  ON
GO
SET  QUOTED_IDENTIFIER  ON
GO
IF  NOT  EXISTS  ( SELECT  *  FROM  sys.objects  WHERE  object_id  =  OBJECT_ID (N ' [dbo].[t_product] ' )  AND  type  in  (N ' U ' ))
BEGIN
CREATE  TABLE  [ dbo ] . [ t_product ] (
     [ xh ]  [ int ]  NOT  NULL ,
     [ price ]  [ int ]  NOT  NULL ,
  CONSTRAINT  [ PK_t_product ]  PRIMARY  KEY  CLUSTERED 
(
     [ xh ]  ASC
) WITH  (IGNORE_DUP_KEY  =  OFF )  ON  [ PRIMARY ]
)  ON  [ PRIMARY ]
END

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11352-1.html
网站维护教程更新时间:2012-03-21 03:20:14  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer