CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

********* 求一个很难的SQL表达式 ************

楼主netmice(玫瑰的谎言)2006-02-05 21:18:32 在 Web 开发 / ASP 提问

A表  
  id   ,   a1   ,   num  
  ==========================  
  1         bb       10  
  2         cc       15  
  B表  
  id   ,   a1   ,   num   ,stype  
  =============================  
  1         bb         3       0  
  2         bb         5       1  
  3         cc         20     0  
                  ...............  
  问题:能否用一个语句完成:统计出A表和B表中a1字段的总和  
   
  要求B表中stype=0的num*20,smtype=1的num*30   与A表中num字段之总和  
   
  即结果为  
            bb         10+(3*20)+(5*30)  
            cc         15+(20*20)  
  该如何用完成??谢谢 问题点数:50、回复次数:6Top

1 楼Novolee(人民子弟兵)(http://biglee.cn/?c)回复于 2006-02-05 21:50:52 得分 0

用子查询估计可以完成。Top

2 楼iuhxq(小灰)回复于 2006-02-06 01:29:33 得分 0

一条SQL   语句估计无法完成,用存储过程吧Top

3 楼zys59(三仙半)回复于 2006-02-06 02:20:46 得分 0

我试验了半天一个SQL没有实现,后来做了两个UPDATE实现了,你也这样试试,其实你要的是更新数据的功能,实现是第一位的,至于几次UPDATE不用那么在意吧!Top

4 楼mm2love2zz(never stop.)回复于 2006-02-06 04:17:01 得分 20

select   a.a1,sum(  
        a.num+(case   when   b.stype=0  
                                then   b.num*20  
                                when   b.stype=1  
                                then   b.num*30  
                                end))-(a.num*(count(b.a1)-1))   as   'sum'  
  from   a,b   where   a.a1=b.a1  
  group   by   b.a1,a.a1,a.num  
  order   by   b.a1  
   
  如果执行的有问题,加qq:26081763,尽量帮你解决!~Top

5 楼xiaoyuehen(OH, NO~It's Unfair!)回复于 2006-02-06 08:47:28 得分 30

Access:  
   
  SELECT   a1,   SUM([num])   AS   [num]   FROM   (SELECT   a1,   IIF(stype   =   3,   [num]   *   100,   IIF(stype   =   5,   [num]   *   2,   [num]))   AS   [num]   FROM   TABLEA  
  UNION   ALL  
  SELECT   a1,   [num]   FROM   TABLEB)   AS   B  
    GROUP   BY   a1  
   
  SQL   Server:  
   
  SELECT   a1,   SUM([num])   AS   [num]   FROM  
    (SELECT   a1,   (CASE   WHEN   stype   =   3   THEN   [num]   *   266   WHEN   stype   =   5   THEN   [num]   *   2   ELSE   [num]   END)   AS   [num]   FROM   TABLEA  
  UNION   ALL  
  SELECT   a1,   [num]   FROM   TABLEB)   AS   B  
    GROUP   BY   a1Top

6 楼iuhxq(小灰)回复于 2006-02-06 10:33:12 得分 0

pfTop

相关问题

  • 巨难正则表达式~~~
  • SQL Server中的Case表达式问题.
  • IB.表达式计算.求sql语句
  • sql语句,表达式的问题?
  • 较难的正则表达式问题
  • 一个正则表达式,比较难
  • 很急,求正则表达式
  • 难题求解:SQL中有无语法可以展开一个字串为表达式?谢谢!!!
  • 难题求解:SQL中有无语法可以展开一个字串为表达式?谢谢!!!
  • 请高人给出一个验证TABLE表名格式的正则表达式!!!!!!!!(很难的哦)

关键词

  • sql
  • stype
  • num
  • 完成
  • sum
  • bb
  • 实现
  • cc
  • group
  • then

得分解答快速导航

  • 帖主:netmice
  • mm2love2zz
  • xiaoyuehen

相关链接

  • Web开发类图书

广告也精彩

反馈

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