2013-03-02 2 views
0

메신저로 조회하려면 TagReplies에서 주문하십시오. 하지만 내가 최상위를 지정하거나 두 번째를 선택하지 않으면 저장하지 못하게 할 때 모든 결과를 원합니다.맨위로 SQL 문을 사용하지 않고

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 

내가 최고

+0

왜 파생 테이블에'ORDER BY'가 필요합니까? –

답변

2

당신이지고있는 오류 메시지를 읽고 추가하는 경우는 잘 작동합니다. 하위 쿼리에는 ORDER BY을 사용할 수 없습니다. 전체 쿼리에 대해서만 ORDER BY 수 있습니다. ORDER BYTOP을 구성하는 레코드를 결정하기 때문에 하위 쿼리의 특수한 경우로 TOP과 함께 작동합니다.

이 시도 : 이것은 VIEW 정의의 일부가 될 수있는 것처럼

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에서 SELECT을 입력해야합니다.

관련 문제