CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

一个SQL语句的问题!

楼主HarrySong(harry)2003-09-04 00:21:03 在 Delphi / 数据库相关 提问

4个表中有3个是关于费用的,并且有货币类型代码(rateID)和汇率(rate)表:Code_Rate,如果3个关于费用的表的的费用乘以汇率(rate)后得出的费用的总和,我用了联合查询,想问一下有没有别的更简便的方法(比如:不用联合查询)!谢谢!  
  select   sum(金额)   from   (select   Sum(a.Factfee*c.Rate   )   as   金额      
                                from   FY_Chargy   a,FY_Translate   b,Code_Rate   c      
                                where     (a.TranslateID=b.TranslateID)      
                                              and   (c.RateID=a.RateID)                                    
  Union  
  select   Sum(   -d.amount*c.Rate   )   as   金额      
                                from     FY_Translate   b,Code_Rate   c   ,FY_Payment   d    
                                where   (d.TranslateID=b.TranslateID)  
                                              and   (c.RateID=d.RateID)                                      
  Union  
  select   Sum(   -e.amount*c.Rate)   as   金额      
                                from     FY_Translate   b,Code_Rate   c     ,FY_withdraw   e  
                                where       (e.TranslateID=b.TranslateID)                                    
                                                  and   (c.RateID=e.RateID   ) 问题点数:50、回复次数:3Top

1 楼zarge(鲨去来兮)回复于 2003-09-04 00:38:37 得分 25

Select   (select   Sum(a.Factfee*c.Rate   )   as   金额      
                                from   FY_Chargy   a,FY_Translate   b,Code_Rate   c      
                                where     (a.TranslateID=b.TranslateID)      
                                              and   (c.RateID=a.RateID)   )  
  +  
  (select   Sum(   -d.amount*c.Rate   )   as   金额      
                                from     FY_Translate   b,Code_Rate   c   ,FY_Payment   d    
                                where   (d.TranslateID=b.TranslateID)  
                                              and   (c.RateID=d.RateID))                                  
  +  
  (select   Sum(   -e.amount*c.Rate)   as   金额      
                                from     FY_Translate   b,Code_Rate   c     ,FY_withdraw   e  
                                where       (e.TranslateID=b.TranslateID)                                    
                                                  and   (c.RateID=e.RateID   )   )Top

2 楼waterw(water)回复于 2003-09-04 08:46:42 得分 25

Select   D.金额*E.Rate  
  (  
          Select   Sum(IsNull(A.Factfee,0))+Sum(-IsNull(B.Amount,0))+Sum(-IsNull(C.Amount,0))   As   金额,T.RateID  
                            From   TransLate   T   Left   Outer   Join   FY_Translate   A   On   T.TransLateID=A.TransLateID    
                                                              Left   Outer   Join   FY_Payment   B   On   T.TransLateID=B.TransLateID  
                                                              Left   Outer   Join   FY_Withdraw   C   On   T.TransLateID=C.TransLateID  
                                                                       
          Group   By   T.RateID  
  )   D   Inner   Join   Code_Rate   E   On   D.RateID  
  Top

3 楼HarrySong(harry)回复于 2003-09-04 13:07:07 得分 0

补充一下:      
  表的字段:  
      1.FY_Translate   业务表  
          FY_translateID   业务编号.    
      2.Code_Rate         汇率表    
          RateID   汇率编号   Rate   汇率值  
      3.FY_Chargy         收费表  
          FY_TranslateID   业务编号,FactFee   收费金额,RateID   汇率编号  
      4.FY_PayMent       付费表  
          FY_TranslateID   业务编号,Amount   收费金额,RateID   汇率编号  
      5.FY_WithDraw     退费表  
          FY_TranslateID   业务编号,Amount   收费金额,RateID   汇率编号  
   
  我要汇总3个费用表的费用总和,条件是:  
  1:汇率编号和Code_Rate   相对应  
  2:3个费用表中的业务编号只要存在于   FY_Translate   中就行(不是FY_Translate中的业务编号在3个费用表中都存在)Top

相关问题

  • 求SQL语句
  • sql语句。
  • sql语句?
  • sql 语句?
  • 求SQL语句
  • ***求SQL语句***
  • sql语句??
  • sql语句
  • sql语句
  • SQL语句

关键词

  • code
  • rateid
  • translateid
  • fy
  • rate
  • translate
  • amount
  • 费用
  • select sum
  • as金额

得分解答快速导航

  • 帖主:HarrySong
  • zarge
  • waterw

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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