资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

关于select语句的问题

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

 
  下面的这个例子是你csdn上的曾经的帖子,不过我在做的时候,一些地方不明白,请大家帮忙!  
   
   
  例从表中查询出:单位名称,本月收入,本月利润,要求数据按单位名称排序。      
  问题是:在本月收入及本月利润各后面插入一列收入排名、利润排名      
  例     单位名称,本月收入         收入排名             本月利润             利润排名      
                aa                                     50                             2                                         10                                 1      
                bb                                     40                             3                                             5                                 2      
                cc                                     60                             1                                             4                                 3      
  排序的两列库表中是没有的,怎么根据前一列的数据计算出来。      
     
     
  ---------------------------------------------------------------      
     
  编程      
  1、改变排序顺序(用收入,倒序)      
  2、for     i     =     1     to     dw_1.rowcount()      
                dw_1.object.收入排名[i]=i      
            next      
  3、     改变排序顺序(用利润,倒序)      
  4、for     i     =     1     to     dw_1.rowcount()      
                dw_1.object.利润排名[i]=i      
            next      
     
  5。改变排序顺序(单位名称,正序)      
     
  ---------------------------------------------------------------      
     
  改变排序顺序(单位名称,正序)      
  用函数setsort(单位名称,a)?      
  忘了,你看看      
     
     
  ---------------------------------------------------------------      
     
  最详细的方案:      
  在SELECT的时候加入两个计算列,      
  即你原来的select语句为:      
  SELECT     name,     收入,利润     FROM     table     where     ....      
  改成:      
  SELECT     name,     收入,收入排名,利润,     利润排名     FROM     table     where     ....      
     
     
  然后在DW中的RetrieveEnd()事件中编程:      
     
  long     i      
  THIS.SetRedraw(false)      
     
  THIS.SetSort(收入排名     D)      
  THIS.Sort()      
  FOR     i     =     1     TO     rowCount      
            THIS.Object.收入排名[i]     =     i      
  NEXT      
     
  THIS.SetSort(利润排名     D)      
  THIS.Sort()      
  FOR     i     =     1     TO     rowCount      
            THIS.Object.利润排名[i]     =     i      
  NEXT      
     
  THIS.SetSort(单位     A)      
  THIS.Sort()      
     
  THIS.SetRedraw(TRUE)      
     
  ---------------------------------------------------------------      
     
  加入两个计算列的方法错了,应该是:      
     
  在SELECT的时候加入两个计算列,      
  即你原来的select语句为:      
  SELECT     name,     收入,利润     FROM     table     where     ....      
  改成:      
  SELECT     name,     收入,0     AS     收入排名,利润,     0     AS     利润排名     FROM     table     where     ....      
     
  在数据源中加入计算列的原因是:      
  如果你在DW中加入text,无法每行设置值的。      
  如果在DW中使用计算列,无法在script中赋值。      
   
   
   
   
   
  对于"SELECT     name,     收入,0     AS     收入排名,利润,     0     AS     利润排名     FROM     table   where     ....     "   语句,我用PB做时,总是报错.  
   
  在我的机子,用了一张表,其中只有三个字段:单位,收入,利润  
  在用数据源时,我选择了"sql   select"    
  select   table1.单位,  
  table1.收入,  
  table1.利润  
  from   table1  
   
  现在我在select画板上加两个字段:收入的排名,利润排名  
  select   table1.单位,  
  table1.收入,  
  0   as   收入的排名,  
  table1.利润,  
  0   as   利润排名  
  from   table1  
   
  可是程序提示我有错误.请问一下,如何做才能加入去?

网友回答:

发表者:wangxichen

在数据窗sql语句中多加入一条“0   as   字段名,”应该不会出错的,直接加入就可以。  
  注意逗号用英文的,如果是最后一个字段,注意不要再加逗号。  
   
  如果原来数据窗sql语句没错,这样加也想不出还会有什么错误了


 

 
热门推荐笔记本: 海尔笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved