首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一Sql语句,有关Case When的解决方法

2012-03-25 
求一Sql语句,有关Case When的表1tablecodetaomoney001200002300表2tablecodestatusmoney001正常100001正常

求一Sql语句,有关Case When的
表1
tablecode taomoney
001 200
002 300
表2
tablecode status money
001 正常 100
001 正常 200
001 套餐 600
001 套餐 500

002 正常 500
002 正常 100
002 套餐 300
002 套餐 200
002 套餐 600

我的要求是写一个Sql语句 完成 
当StatuS为正常时 对Money求和
当StatuS为套餐时 不管对应的有多少行,其求和值 为Taomoney

出现 
tablecode summoney
001 500 (100+200+200)
002 900 (500+100+300)

[解决办法]

SQL code
select     a.tablecode,a.taomoney+sum(b.[money]) as summoneyfrom     表1 a,表2 b where     a.tablecode=b.tablecode and b.status='正常' group by     a.tablecode,a.taomoney order by    a.tablecode
[解决办法]
select tablecode,sum(taomoney) as taomoney
from 
(
select tablecode,taomoney 
from 表1
union all
select tablecode,money
from 表2
where status='正常'
) T
group by tablecode

热点排行