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

求一SQL.

楼主icedong3(这是怎么啦)2003-09-03 13:55:20 在 MS-SQL Server / 疑难问题 提问

select   case   when   a/b>0.5   then   1   else   0   end   from   orderlist     group   by   code  
   
  我想统计出a/b大于50%   的数据.(其中的a,b是orderlist   的两个字段)  
  如果按我那样写,只能统计出当a/b=1时候满足,其余结果均不满足.  
  请帮忙... 问题点数:20、回复次数:6Top

1 楼myflok(老虎爱吃肉)回复于 2003-09-03 14:07:47 得分 4

select   case   when   a*1.0/b>0.5   then   1   else   0   end   from   orderlist     group   by   code  
  Top

2 楼viptiger(六嘎)回复于 2003-09-03 14:12:38 得分 4

select   case   when   convert(decimal,a)/convert(decimal,b)>0.5   then   1   else   0   end   from   orderlist   group   by   codeTop

3 楼workhand(我可憨了...)回复于 2003-09-03 14:13:11 得分 3

因a、b都是整形,a/b结果自动转成整形,当a<b时结果等于0,所以要先把a转成decimal型。  
  同意楼上兄。Top

4 楼nforcedzh(翔天)回复于 2003-09-03 14:18:02 得分 3

看看帮助  
   
   
  /(除)  
  用一个数除以另一个数(算术除法运算符)。  
   
  语法  
  dividend   /   divisor  
   
  参数  
  dividend  
   
  是要被除的数字表达式。dividend   可以是数字数据类型分类中的任何数据类型(datetime   或   smalldatetime   数据类型除外)的任何有效   Microsoft&reg;   SQL   Server&#8482;   表达式。  
   
  divisor  
   
  除数的数字表达式。divisor   可以是具有数字数据类型分类中任何数据类型(datetime   和   smalldatetime   数据类型除外)的任何有效   SQL   Server   表达式。  
   
  结果类型  
  返回优先级较高的参数的数据类型。有关数据类型优先级的更多信息,请参见数据类型的优先顺序。    
   
  如果用一个整型的   divisor   去除整型的   dividend,其结果是一个整数,小数部分被截断。  
   
  注释  
  由   /   运算符返回的实际值是用第一个表达式除以第二个表达式所得的商。  
   
  Top

5 楼txlicenhe(马可)回复于 2003-09-03 14:33:30 得分 3

select   case   when   a*1.0/b>0.5   then   1   else   0   end   from   orderlist     group   by   codeTop

6 楼wozhuchuanwei(一个组件编写者,就一定是一个更优秀的Delphi开发者)回复于 2003-09-03 15:07:23 得分 3

Create   Table   TEST(a   int,b   int)  
  INSERT   INTO   TEST   SELECT   3,2  
  INSERT   INTO   TEST   SELECT   2,2  
  INSERT   INTO   TEST   SELECT   1,2  
  INSERT   INTO   TEST   SELECT   4,2  
  SELECT   *   FROM   TEST  
  select  
    case    
        when   CAST(a   AS   Decimal(9,3))/CAST(b   AS   decimal(9,3))>0.5   then   1   else   0   end   from   TEST  
  Drop   Table   TEST  
   
  a                       b                        
  -----------   -----------    
  3                       2  
  2                       2  
  1                       2  
  4                       2  
   
  (所影响的行数为   4   行)  
   
                           
  -----------    
  1  
  1  
  0  
  1Top

7 楼icedong3(这是怎么啦)回复于 2003-09-03 15:23:43 得分 0

谢谢!那个问题已经搞定.  
      还有一问题请教.  
      orderlist(code,a,b,   amount,)  
   
  select   sum(amount)   as   总数量   from   orderlist    
  select   sum(amount)   as   每个的总数量   from   orderlist   group   by   code    
   
  我想要的结果:  
  select   总数量   ,每个的总数量   from   ......  
  不知如何将上面两个语句综合起来,还是有别的写法.  
  Top

相关问题

  • 一句sql
  • 一句sql
  • 一句sql
  • 求一sql
  • 一条sql
  • 一句sql
  • 一sql问题!
  • 求一句SQL。
  • 求一SQL
  • 问一条SQL

关键词

  • code
  • orderlist
  • orderlist group
  • decimal
  • 总数量
  • then1else0
  • amount
  • 结果
  • insertinto test
  • case

得分解答快速导航

  • 帖主:icedong3
  • myflok
  • viptiger
  • workhand
  • nforcedzh
  • txlicenhe
  • wozhuchuanwei

相关链接

  • SQL Server类图书

广告也精彩

反馈

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