首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求一SQL语句。解决方法

2012-01-12 
求一SQL语句。有一个表typemoneygameID1100102200101501011002025020需要写一个视图groupby出GAMEID的支出

求一SQL语句。
有一个表
type   money     gameID
1         100         10
2         200         10
1         50           10
1         100         20
2         50           20

需要写一个视图
group   by   出GAMEID
的支出和收入
type=1   表示支出
2表示收入
要求效果为  
gameID   getmoney   getcount   outmoney   outcount

[解决办法]
getmoney 和 outmoney 可以这样求,

SELECT gameID, SUM(CASE type WHEN 1 THEN money ELSE 0 END) getmoney, SUM(CASE type
WHEN 2 THEN money ELSE 0 END) outmoney FROM test GROUP BY gameID


getcount, outcount 还想到,不知道这样可不可以

SELECT gameID, COUNT(CASE type WHEN 1 THEN 1 END) getcount, SUM(CASE type
WHEN 2 THEN 1 END) outcount FROM test GROUP BY gameID

如果不可以,我能想到的只有使用递归变量了,就无法一条sql了,
等待高人出现
[解决办法]
select gameid,
sum(case when type=1 then money else 0 end) as getmoney,
sum(case when type=1 then 1 else 0 end)as getcount,
sum(case when type=2 then money else 0 end) as outmoney,
sum(case when type=2 then 1 else 0 end) as outcount
group by gameid

热点排行