1

質問があります、お役に立てれば幸いです。

次の図では、最近のスコアという名前の新しい列を作成します。最近のスコアは、ユーザーが最後に獲得したスコアです。行を日付順に並べると、最近のスコアは下の行のスコア値です。

ここに画像の説明を入力

次のコードを書きましたが、間違っています:(

  SELECT [user-name],
         [submissions],
         [date],
         [score]

         (SELECT [score]
                 FROM [top-concept6] tc6
                 WHERE tc6.[user-name]=[top-concept6].[user-name]
                 AND tc6.[date]= (SELECT  TOP(1) [date] 
                 FROM [top-concept6] tcc6  
                 WHERE [date]<[top-concept6].[date] ORDER BY [date] DESC)) AS [recent-score]

   FROM [top-concept6]

これはSQLフィドルです:http://sqlfiddle.com/#!3/74e3f

4

2 に答える 2

1

してみてください:

select 
    *,
    (select top 1 b.score from [top-concept6] b where b.[user-name]=a.[user-name] and b.date<a.date order by b.date desc) [Recent Score]
from 
    [top-concept6] a
于 2013-04-19T06:04:25.173 に答える