杀人游戏数据库,寻求统计语句。

Redball 2006-08-16 11:20:18
1,局数表
局数 胜负
1 警胜
2 匪胜
3 平局
4 匪胜
5 警胜

1,游戏参与表
局数 参加者 游戏身份
1 aaa 警察
1 bbb 杀手
1 ccc 平民
1 ddd 警察
2 aaa 平民
2 bbb 杀手
2 eee 警察
3 bbb 警察
3 fff 杀手
3 ggg 平民
4 aaa 杀手
4 bbb 平民
5 aaa 杀手
5 eee 警察

表就这样了,希望得到的结果却好像很复杂
规则:
警胜,警察30分,平民25分,杀手-25分
平局,每人5分
匪胜,杀手40分,警察-25分,平民-15分


希望得出

游戏者 拿到杀手次数 杀手胜次数 拿到警察次数 警察胜利次数 拿到平民次数 平民胜利次数 总游戏次数 总胜利次数 总积分 名次

这样一张表……
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2006-08-16
  • 打赏
  • 举报
回复

怎么算平民胜利?平局?

如果平局算平民胜利:

SELECT A.参加者,
Sum(IIf(A.游戏身份='杀手',1,0)) AS 拿到杀手次数,
Sum(IIf(A.游戏身份='杀手' And B.胜负='匪胜',1,0)) AS 杀手胜次数,
Sum(IIf(A.游戏身份='警察',1,0)) AS 拿到警察次数,
Sum(IIf(A.游戏身份='警察' And B.胜负='警胜',1,0)) AS 警察胜次数,
Sum(IIf(A.游戏身份='平民',1,0)) AS 拿到平民次数,
Sum(IIf(A.游戏身份='平民' And B.胜负='平局',1,0)) AS 平民胜次数,
Count(*) AS 总游戏次数,
Sum(IIf(A.游戏身份='杀手' And B.胜负='匪胜',1,0)) +
Sum(IIf(A.游戏身份='警察' And B.胜负='警胜',1,0)) +
Sum(IIf(A.游戏身份='平民' And B.胜负='平局',1,0)) AS 总胜次数,
SUM(C.得分) AS 总积分
FROM (游戏参与 AS A INNER JOIN 局数 AS B ON A.局数 = B.局数)
INNER JOIN 规则 AS C ON B.胜负 = C.胜负 AND A.游戏身份 = C.身份
GROUP BY A.参加者
order by SUM(C.得分) DESC,A.参加者


OracleRoob 2006-08-16
  • 打赏
  • 举报
回复
怎么算平民胜利?平局?
OracleRoob 2006-08-16
  • 打赏
  • 举报
回复
添加规则表:

胜负 身份 得分
警胜 警察 30
警胜 平民 25
警胜 杀手 -25
平局 警察 5
平局 平民 5
平局 杀手 5
匪胜 警察 -25
匪胜 平民 -15
匪胜 杀手 40
wwwwb 2006-08-16
  • 打赏
  • 举报
回复
1、怎么算平民胜利?
2、总积分如相同怎样计算?
TRY:
TRANSFORM nz(count(*) ,0)
SELECT 参加者, count(*) AS 总游戏次数, sum(tf) AS 总积分, sum(iif(胜负='警胜' and 游戏身份='警察',1,0)) AS 警察胜利次数, sum(iif(胜负<>'平局',1,0)) AS 总胜利次数, sum(iif(胜负='警胜' and 游戏身份='平民',1,0)) AS 平民胜利次数, sum(iif(胜负='匪胜' and 游戏身份='杀手',1,0)) AS 杀手胜次数
FROM [SELECT iif(胜负='警胜' and 游戏身份='警察',30,iif(胜负='警胜' and 游戏身份='平民',25,iif(胜负='警胜' and 游戏身份='杀手',-25,
iif(胜负='匪胜' and 游戏身份='杀手',40,iif(胜负='匪胜' and 游戏身份='警察',-25,iif(胜负='匪胜' and 游戏身份='平民',-15,5)))))) AS tf, *
FROM 局数表 AS a, 游戏参与表 AS b
WHERE a.局数 =b.局数
]. AS [%$##@_Alias]
GROUP BY 参加者
PIVOT '拿到'& 游戏身份 & '次数';
Redball 2006-08-16
  • 打赏
  • 举报
回复
老大,调通了~~我佩服你!

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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