mysql - 计算具有三个表的新列

标签 mysql join

我有 3 个输入表:

    **Student Table**     
    -------------
    id    name
    -------------
    201     shiva
    202     Jitendra
    203     Makarand
    204     Arpit

    **Position Table**
    -------------
    id    rank
    -------------
    203    1
    201    2
    202    3
    204    4

    **House Table**
    ------------------
    housename    id
    ------------------
    Yellow        201
    Blue          202
    Red           203
    Yellow        204

学生表中有n条记录

我想用公式 P = sum(n+1 - rank)*100 计算点数(列)

    ** Output Table **
-------------------------------
HouseName      Name      Points
-------------------------------
yellow         Shiva         300
Red            Makarand      200
Yellow         Arpit         100

我写了这个查询:

select h.housename "House Name",
       s.name "Name",
       (sum ( (count(*) from s + 1) - p.rank ) ) * 100 as "Points"
       from House h,Student s,Position p
       where h.housename = (select s.name where s.id = h.id)
       order by Points

示例 SQL Fiddle 在这里:http://sqlfiddle.com/#!9/4d823/26

我是 SQL 新手,我怎样才能使这个查询正确?

最佳答案

你的问题不清楚,如果你想从三个表中获取积分(使用公式),

 select h.housename "House Name",
   s.name "Name",
   ((count(s.id) + 1 - p.rank ) * 100) as "Points"
   from House h join Student s on s.id = h.id join Position p on p.id=s.id order by Points

我没有运行此查询。能否确认一下?

关于mysql - 计算具有三个表的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40695334/

相关文章:

javascript - jQuery 将参数发送到 Rails 应用程序以保存在数据库中

mysql - MySQL 中的重复或不可预测的结果

mysql - 高级选择

mysql - 关于优化多个联接的方法的建议。使用数据库触发器使用另一个表来编译数据是不好的做法吗?

sql - 如何加入 3 个表并按所有 3 个的日期排序?

mysql - 如何选择给定数据出现在表中多行的行?

MySql 共享查找表

php - 插入带有\"%s\错误的值 MYSQL PHP

mysql - 一张表上的多个 SQL 查询

php - 连接mysql中的2个表,返回不相关的行