【问题标题】:Query does not return anything? [duplicate]查询不返回任何内容? [复制]
【发布时间】:2013-09-09 10:27:06
【问题描述】:

此查询在我的氏族 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

但我想在LoyaltyPoint 之上为MannerPoint 添加第二条规则。

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

但这不起作用并且不显示。

我使用 MSSQL 2005

【问题讨论】:

  • 你应该提供一个测试用例,这和php完全没有关系?
  • 查询有问题,导致无法正常工作。你能看看它,如果它看起来很好,请告诉我?
  • 不要再发布相同的问题stackoverflow.com/questions/18695518/…

标签: sql-server


【解决方案1】:

你这里多了一个括号;

AND USERDATA.Authority IN(1, 2)) ) as MannerPoint

去掉多余括号的调整代码:

AND USERDATA.Authority IN(1, 2) ) as MannerPoint

【讨论】:

  • 那么如何使它正确呢?
  • @nRov - 添加了简单的更正行
  • 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 并且有效。呜呜。但它是否安全且结构良好的查询?像我的默认忠诚度一样吗?
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 2021-04-24
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多