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 吧?怎么做呢??

...全文
120 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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

111,098

社区成员

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

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

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