高分赏!!!SQL问题.帮我计算出来啊,急!!!!!!!!!

当Cgenius..BND_CONV_HOLDER表中在同一INNER_CODE、ENDDATE下,HOLD_SEQ序列为1、2、3……10时(只统计10>=HOLD_S... 当Cgenius..BND_CONV_HOLDER表中在同一INNER_CODE、ENDDATE下,HOLD_SEQ序列为1、2、3……10时(只统计10>=HOLD_SEQ>=1且必须是1到10连续的),计算SUM(HOLD_VAL) 展开
 我来答
发飘飘999
2008-03-06
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
SET @HOLD_SEQ = '1' --变量附初值‘1’
/***********************************************************************
以下WHILE循环用于找出Cgenius..BND_CONV_HOLDER表中在同一INNER_CODE、ENDDATE下,
HOLD_SEQ序列为1、2、3……10时(只统计10>=HOLD_SEQ>=1且必须是1到10连续的)的记录,
并将结果写到变量表中。
*************************************************************************/

WHILE(@HOLD_SEQ<11)
begin

if exists(select 1
from Cgenius..BND_CONV_HOLDER
where inner_code = @inner_code
and enddate = @enddate
and HOLD_SEQ = @HOLD_SEQ
and isvalid = '1' )
begin

insert into @temp
values(@inner_code,@enddate,@HOLD_SEQ)

end

set @hold_seq = @hold_seq + 1

end

/***********************************************************************
从变量表中计算出满足条件的记录的数量,如果为10,就从原表中计算出
sum(HOLD_VAL) @TEN_HOLD_VAL
sum(HOLD_VOL) @TEN_HOLD_VOL
sum(HOLD_PCT) 分别附值给变量 @TEN_HOLD_PCT
***********************************************************************/
select @count = count(*)
from @temp
where inner_code = @inner_code
and enddate = @enddate

if @count = '10'
begin

select @TEN_HOLD_VAL = sum(isnull(HOLD_VAL,0)),
@TEN_HOLD_VOL = sum(isnull(HOLD_VOL,0)),
@TEN_HOLD_PCT = sum(isnull(HOLD_PCT,0))
from Cgenius..BND_CONV_HOLDER
where inner_code = @inner_code
and enddate = @enddate
and isvalid = '1'
友万科技
2025-04-08 广告
Stata系列软件全国授权代理——北京友万。北京友万信息科技有限公司,总部设在北京市昌平科技园区,是一家专注于引进国内外软硬件产品的中关村高新技术企业。公司拥有多项自主研发的数据平台,依托自身经验丰富的技术团队资源,为不同领域的客户提供全面... 点击进入详情页
本回答由友万科技提供
都菀tZ
2008-02-22
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
好难
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵猫的羽毛
2008-02-26 · TA获得超过167个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:277万
展开全部
有几个问题...
1 问题是否解决,还需要答案不?
2 能否用存储过程?(如果不能恕偶能力有限....)
3 HOLD_SEQ HOLD_VAL分别是哪个表的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sql_2005
2008-02-27 · TA获得超过252个赞
知道答主
回答量:289
采纳率:0%
帮助的人:0
展开全部
假设Cgenius..BND_CONV_HOLDER表主键为ID

SELECT SUM(HOLD_VAL)
FROM Cgenius..BND_CONV_HOLDER T1
WHERE EXISTS(
SELECT DISTINCT HOLD_SEQ
FROM Cgenius..BND_CONV_HOLDER T2
WHERE HOLD_SEQ BETWEEN 1 AND 10
AND T1.ID=T2.ID
GROUP BY INNER_CODE,ENDDATE
HAVING COUNT(HOLD_SEQ)=10)
AND HOLD_SEQ BETWEEN 1 AND 10
GROUP BY INNER_CODE,ENDDATE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式