0

我使用这个查询 atm 我想通过 TagReplies 订购。但是当它不允许我保存它时,除非我指定顶部或在第二次选择之后,但我想要所有结果。

AS
 SELECT
Tag,
TagReplies, 
(TagReplies*1.00) AS Weight,
TagTopics, 
(TagTopics*1.00) AS Weight2

FROM
(
SELECT
    Tags.Tag
    ,SUM(T.TopicReplies) As TagReplies
    ,Count(T.TopicId) As TagTopics
FROM
       Tags
    INNER JOIN Topics T ON Tags.TopicId = T.TopicId
GROUP BY
    Tags.Tag
if add this eg ORDER BY TagReplies DESC
)  T

如果我添加一个顶部它工作正常

4

1 回答 1

2

阅读您收到的错误消息。您不能ORDER BY在子查询中使用。您只能ORDER BY针对整个查询。 ORDER BY在子查询中TOP作为特例使用,因为这决定了哪些记录构成TOP.

试试这个:

SELECT
Tag,
TagReplies, 
(TagReplies*1.00) AS Weight,
TagTopics, 
(TagTopics*1.00) AS Weight2

FROM
(
SELECT
    Tags.Tag
    ,SUM(T.TopicReplies) As TagReplies
    ,Count(T.TopicId) As TagTopics
FROM
       Tags
    INNER JOIN Topics T ON Tags.TopicId = T.TopicId
GROUP BY
    Tags.Tag
)  T
ORDER BY TagReplies DESC

此外,看起来这可能是VIEW定义的一部分。您不能在定义中指定ORDER BY子句。VIEW当您SELECTVIEW.

于 2013-03-02T04:21:31.813 回答