select 和count 的问题。

interim 2014-01-21 01:25:22

如下表。

ID 玩家 结果 对手 时间
1 张三 胜利 李四 2014/1/20
2 张三 胜利 李四 2014/1/21
3 李四 失败 张三 2014/1/20
4 李四 失败 张三 2014/1/21
5 李四 胜利 张三 2014/1/19
6 张三 失败 李四 2014/1/19

select 字段

玩家 胜利局数 失败局数 总局数



sql 语句 里面 ,不像是 excel 没有countif 吧?怎么做呢??

...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
interim 2014-01-21
  • 打赏
  • 举报
回复
我是说,再vs2013的查询生成器中
interim 2014-01-21
  • 打赏
  • 举报
回复
--------------------------- Microsoft Visual Studio --------------------------- SQL 执行错误。 已执行 SQL 语句: SELECT SUM(CASE WHEN 金额 > 0 THEN 1 ELSE 0 END) AS 成绩大于0的个数 FROM 游戏胜负表 错误源: System.Data 错误信息: IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。 --------------------------- 确定 帮助 ---------------------------
interim 2014-01-21
  • 打赏
  • 举报
回复
我试过 case when then。但是不能。不知道哪的问题。

比如下面这句。 在查询分析器中,提示错误。

SELECT SUM(CASE WHEN 成绩 > 0 THEN 1 ELSE 0 END) AS 成绩大于0的人数
FROM 成绩表
md5e 2014-01-21
  • 打赏
  • 举报
回复
引用 6 楼 interim 的回复:
在vs2013 的那个 查询分析器中,无法使用 case when then [quote=引用 4 楼 liuchaolin 的回复:] select [玩家], sum( case [结果] when '胜利' then 1 else 0 end) as [胜利局数], sum( case [结果] when '失败' then 1 else 0 end) as [失败局数], count(1) as [总局数] From [记录表] Group by [玩家]
[/quote] 这个和vs没有关键吧,难道连视图也不能调用?
interim 2014-01-21
  • 打赏
  • 举报
回复
在vs2013 的那个 查询分析器中,无法使用 case when then
引用 4 楼 liuchaolin 的回复:
select [玩家], sum( case [结果] when '胜利' then 1 else 0 end) as [胜利局数], sum( case [结果] when '失败' then 1 else 0 end) as [失败局数], count(1) as [总局数] From [记录表] Group by [玩家]
interim 2014-01-21
  • 打赏
  • 举报
回复
引用 2 楼 u011130289 的回复:
把你想要的sql语句要求说出来
对战三局
md5e 2014-01-21
  • 打赏
  • 举报
回复
select [玩家], sum( case [结果] when '胜利' then 1 else 0 end) as [胜利局数], sum( case [结果] when '失败' then 1 else 0 end) as [失败局数], count(1) as [总局数] From [记录表] Group by [玩家]
feiniao19830822 2014-01-21
  • 打赏
  • 举报
回复
引用
ID 玩家 结果 对手 时间 1 张三 胜利 李四 2014/1/20 2 张三 胜利 李四 2014/1/21 3 李四 失败 张三 2014/1/20 4 李四 失败 张三 2014/1/21 5 李四 胜利 张三 2014/1/19 6 张三 失败 李四 2014/1/19
我想知道张三和李四对战了3盘还是6盘,因为上面的数据太巧了,每次张三赢李四,总有一条李四输张三,时间也一致。 如果对战了3盘。

select t1.玩家,胜利局数,失败局数,(胜利局数+失败局数) as 总局数  from 
(select 玩家,COUNT(结果) as 胜利局数 from PlayRst where 结果='胜利' group by 玩家)t1 
join 
(select 玩家,COUNT(结果) as 失败局数 from PlayRst where 结果='失败' group by 玩家)t2 
on t1.玩家 = t2.玩家
Regan-lin 2014-01-21
  • 打赏
  • 举报
回复
把你想要的sql语句要求说出来
  • 打赏
  • 举报
回复
select name,count(总胜利),count(总失败),count(总胜利)+count(总失败) as 总局数 (select name,count(result) as 总胜利 from table where result=胜利 group by name join select name,count(result) as 总失败 from table where result=失败 group by name on(...)) 大概的这样你测试测试真实SQL

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧