1

こんにちは、私は 2 つのテーブルをtblTechnology持っていtblQuestionsますtblTechnologyAsp.net, c# and alltblQuestionsQuestionID] ,[QuestionTitle] ,[QuestionDesc] ,[DatePosted] ,[UserName] ,[TechID] ,[viewCount] ,[ReplyCount]

最初に、目的の結果を取得するためのストアド プロシージャを作成しました。各テクノロジの最新の挿入レコードを から取得したいと考えてtblQuestionsいます。これが のデータです。tblquestion

ここに画像の説明を入力

このことから、各テクノロジーから最後に挿入された質問の ORDER BY Dateposted を取得したいと思います

最初に書いたのはこれ

 SELECT TechName,TechDesc, tblTechnology.TechID as ID, COUNT(QuestionDesc) AS 
  'Totalposts',sum(ReplyCount) as ReplyCount FROM tblTechnology LEFT JOIN 
  tblQuestions ON tblQuestions.TechID = tblTechnology.TechID 
     GROUP BY tblTechnology.TechID, TechName,TechDesc

次のような結果が得られます

ここに画像の説明を入力

を取得したいのですが、結果に含まれているので、誰か助けてQuestionTitleくださいDatePostedUsername

4

1 に答える 1

3

http://www.sqlfiddle.com/#!3/f5fe6/5

WITH A AS (
    SELECT top(1) WITH ties Q.TechID
        ,QuestionID
        ,QuestionTitle
        ,DatePosted
        ,Username
    FROM tblTechnology T LEFT JOIN tblQuestions Q ON Q.TechID = T.TechID
    ORDER BY row_number() over(partition BY Q.TechID ORDER BY Dateposted DESC)
)
SELECT * FROM A
OUTER apply (SELECT count(QuestionDesc) Totalposts, sum(ReplyCount) ReplyCount
    FROM tblQuestions WHERE A.TechID=tblQuestions.TechID) D
于 2013-02-09T10:36:42.070 に答える