CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求一查询语句的写法,急

楼主yanlw()2003-12-01 13:49:49 在 MS-SQL Server / 基础类 提问

有如下一表:  
  AAA         BBB          
  A               2              
  B               3              
  C               4                          
  D               5  
   
  想求如下结果,如何写  
   
  AAA         BBB         CCC    
  A               2             2  
  B               3             5  
  C               4             9  
  D               5             14 问题点数:0、回复次数:17Top

1 楼shuiniu(飞扬的梦)(我是一头只吃西红柿的水牛)回复于 2003-12-01 13:58:18 得分 0

select   aaa,bbb   ,(select   sum(bbb)   from   表   b     where   b.aaa   <=a.aaa)   ccc     from   表   aTop

2 楼Rotaxe(程序员)回复于 2003-12-01 14:07:00 得分 0

select   aaa,   bbb,   ccc=   bbb+   isnull((select   max(bbb)   from   表   a1   where     a.term>a1.term),0)   from   表   a  
  Top

3 楼witzgf2(java殉道者)回复于 2003-12-01 14:07:21 得分 0

同意楼上Top

4 楼dlpseeyou(豆子)回复于 2003-12-01 14:07:55 得分 0

create   table   test1  
  (   aaa   varchar(2),  
    bbb   int  
  )  
  insert   into   test1(aaa,bbb)   values('A',2)  
  insert   into   test1(aaa,bbb)   values('B',3)  
  insert   into   test1(aaa,bbb)   values('C',4)  
  insert   into   test1(aaa,bbb)   values('D',5)  
    select   aaa   aaa,bbb   bbb,(select   sum(bbb)   from   test1   bb   where   bb.aaa<=aa.aaa)   ccc   from   test1   aaTop

5 楼dlpseeyou(豆子)回复于 2003-12-01 14:09:56 得分 0

 
  程序员的语句应改为:  
  select   aaa,   bbb,   ccc=   bbb+   isnull((select   max(bbb)   from   表名   a1   where     a.aaa>a1.aaa),0)   from   表名   aTop

6 楼victorycyz(--)回复于 2003-12-01 14:11:22 得分 0

select   *,(select   sum(bbb)   from   table_name   a     where   a.aaa   <=tem.aaa)   ccc     from   table_name   temTop

7 楼yanlw()回复于 2003-12-01 15:37:52 得分 0

好象没一个对的,是不是大家误解我的意思了,我再把题目详说一次:  
   
  有如下一表名table:  
  AAA         BBB          
  f             10              
  h             5              
  a             20                          
  t             15  
   
  想求如下结果,如何写  
   
  AAA         BBB         CCC    
  f               10           10  
  h               5             15  
  a               20           35  
  t               15           50  
  Top

8 楼yanlw()回复于 2003-12-01 15:41:16 得分 0

upTop

9 楼dlpseeyou(豆子)回复于 2003-12-01 15:43:20 得分 0

create   table   test1  
  (   aaa   varchar(2),  
    bbb   int  
  )  
  insert   into   test1(aaa,bbb)   values('A',2)  
  insert   into   test1(aaa,bbb)   values('B',3)  
  insert   into   test1(aaa,bbb)   values('C',4)  
  insert   into   test1(aaa,bbb)   values('D',5)  
    select   aaa   aaa,bbb   bbb,(select   sum(bbb)   from   test1   bb   where   bb.aaa<=aa.aaa)   ccc   from   test1   aa  
  你试了吗?  
   
  Top

10 楼yanlw()回复于 2003-12-01 15:47:34 得分 0

to   dlpseeyou(豆子)   :  
    假设我AAA列有100000行,那我是不是要写100000行呢Top

11 楼azsoft(Try my best)回复于 2003-12-01 16:48:46 得分 0

晕?!!Top

12 楼dlpseeyou(豆子)回复于 2003-12-01 16:55:44 得分 0

aaa,bbb你也想自动产生,对不对Top

13 楼txlicenhe(马可)回复于 2003-12-01 19:12:59 得分 0

同意豆子。Top

14 楼fuyaojiang(瑶瑶)回复于 2003-12-01 19:40:08 得分 0

ALTER   TABLE   tablename   ADD   id   int   identity(1,1)  
  select   aaa,bbb,(select   sum(isnull(bbb,0))   from   tablename   a   where   a.aaa<=b.aaa)   as   ccc   from   tablename   b  
  alter   table   tablename   DROP   COLUMN   idTop

15 楼echo_llee()回复于 2003-12-01 20:10:24 得分 0

/*假设表结构为*/  
  CREATE   TABLE   mytable   (  
  [AAA]   [varchar]   (50)   ,  
  [BBB]   [decimal]     (12,2)   not   null   default   0   )  
   
  /*插入测试数据*/  
  insert   into   mytable(AAA,BBB)   values('a',10)  
  insert   into   mytable(AAA,BBB)   values('b',5)  
  insert   into   mytable(AAA,BBB)   values('c',20)  
  insert   into   mytable(AAA,BBB)   values('d',15)  
   
  /*建立存储过程*/  
  CREATE   PROCEDURE     [dbo].[sp_sum_BBB]      
    AS  
    begin  
                    if   exists   (select   *   from   TEMPDB.DBO.sysobjects   where   name   =   '##QUERY1')  
                    drop   table   ##query1  
   
      CREATE   TABLE   ##query1   (  
  [AAA]   [varchar]   (50)   ,  
  [BBB]   [decimal]     (12,2)   not   null   default   0   ,  
  [CCC]   [decimal]     (12,2)   not   null   default   0    
                  )  
   
  insert   into   ##query1   select   AAA,BBB,0   as   CCC     from   mytable    
   
  declare   @val2   as   decimal(12,2)  
   
  select     @val2=   0    
   
  UPDATE   ##query1     set   @val2=CCC=@val2   +   BBB  
   
  select   *   from   ##query1  
   
                    if   exists   (select   *   from   TEMPDB.DBO.sysobjects   where   name   =   '##QUERY1')  
                    drop   table   ##query1  
  end  
  GO  
  Top

16 楼yanlw()回复于 2003-12-02 10:06:06 得分 0

太复杂Top

17 楼echo_llee()回复于 2003-12-02 20:05:59 得分 0

事实上核心句子就一句话:  
  UPDATE   ##query1     set   @val2=CCC=@val2   +   BBB  
  只要知道这语句的含义,就OK了。  
  Top

相关问题

  • 关于查询语句的写法,急,在线
  • 关于date字段的查询语句的写法?急!!
  • 很急,求一个sql查询语句怎么写法
  • sql语句的写法!!!!!急!!!!
  • 请教查询语句写法
  • 求sql查询语句写法~~!!?~!
  • 急!急!,sql语句的写法!!!!!!!!!!!!!!!!!
  • 求救,急!sql语句的写法
  • 急问一个sql语句的写法。
  • 急求这sql语句写法!!!

关键词

  • a2
  • d5
  • c4
  • bbb
  • aaa
  • 如下
  • select

得分解答快速导航

  • 帖主:yanlw

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo