【发布时间】:2013-09-12 18:45:50
【问题描述】:
下面这个查询与我的氏族排名 php 脚本相关联。
SELECT TOP 100
IDNum,
IDName,
Nation,
(SELECT SUM(LoyaltyPoint)
FROM USERDATA
WHERE USERDATA.Knights = KNIGHTS.IDNum
AND USERDATA.Authority IN(1, 2)) as ClanLoyalty
FROM KNIGHTS
ORDER BY ClanLoyalty DESC
我想为 MannerPoint 添加第二条规则作为忠诚度的附加规则。
因此,它将同时显示礼仪和忠诚度积分并按两者排序。
例如如果氏族有10000忠诚度和100礼仪,那么它的排名会高于20000忠诚度和50礼仪。
我尝试了一些但失败了。如果有人愿意帮助我,将不胜感激。
编辑:我试过了:
SELECT TOP 100 IDNum, IDName, Nation, (SELECT SUM(LoyaltyPoint) FROM USERDATA WHERE USERDATA.Knights = KNIGHTS.IDNum AND USERDATA.Authority IN(1, 2)) as ClanLoyalty, (SELECT SUM(MannerPoint) FROM USERDATA WHERE USERDATA.Knights = KNIGHTS.IDNum AND USERDATA.Authority IN(1, 2))) as MannerPoint FROM KNIGHTS ORDER BY ClanLoyalty DESC, MannerPoint DESC
但它根本不显示。
【问题讨论】:
-
对于初学者,您需要指定存储方式点的位置
-
它们在 USERDATA 中与忠诚度积分相同。
-
在您的主选择语句中,为方式点添加另一个返回列并将其包含在您的订单中。例如,选择 [existingColumn],(选择方式)作为 MannerPoint from ... where .. . order by MannerPoint desc, ClanLoyalty DESC
-
SELECT TOP 100 IDNum, IDName, Nation, (SELECT SUM(LoyaltyPoint) FROM USERDATA WHERE USERDATA.Knights = KNIGHTS.IDNum AND USERDATA.Authority IN(1, 2)) as ClanLoyalty, (SELECT SUM(MannerPoint) FROM FROM USERDATA WHERE USERDATA.Knights = KNIGHTS.IDNum AND USERDATA.Authority IN(1, 2))) as MannerPoint FROM KNIGHTS ORDER BY ClanLoyalty DESC, MannerPoint DESC喜欢吗?这完全正确吗? -
是的,没错
标签: php sql sql-server