4

MSSQL データベース内の一連のイベントに関するデータを含むテーブルがあります。

ID  Name                                                      Date        Location                         Owner
--- --------------------------------------------------------- ----------- -------------------------------- -----------
1   Seminar Name 1                                            2013-08-08  A Location Name                  16
2   Another Event Name                                        2013-07-30  Another Location                 18
3   Event Title                                               2013-08-21  Head Office                      94
4   Another Title                                             2013-08-30  London Office                    18
5   Seminar Name 2                                            2013-08-27  Town Hall                        19
6   Title                                                     2013-08-20  Somewhere Else                   196
7   Fake Seminar For Testing                                  2013-08-25  Fake Location                    196

このテーブルには、アプリケーション内の複数のユーザーが所有する多数のイベントが含まれていることがわかります。各ユーザーの最近発生したイベントを選択するために使用できるクエリがあるかどうかを調べようとしています。私が望むものを示す最も簡単な方法は、私が探している理想的な結果テーブルを表示することだと思います (今日の日付に基づく):

ID  Name                                                      Date        Location                         Owner
--- --------------------------------------------------------- ----------- -------------------------------- -----------
1   Seminar Name 1                                            2013-08-08  A Location Name                  16
2   Another Event Name                                        2013-07-30  Another Location                 18
3   Event Title                                               2013-08-21  Head Office                      94
5   Seminar Name 2                                            2013-08-27  Town Hall                        19
6   Title                                                     2013-08-20  Somewhere Else                   196

現時点で思いつくのは、次のクエリです。

SELECT DISTINCT Owner, Date, ID FROM Seminars
GROUP BY Owner, Date, ID ORDER BY Date

それは私がやりたいことを実際に行うわけではなく、今日の日付にも基づいて何らかの方法で選択する必要があるため、実際の解決策はこれよりも少し複雑になると思います。

4

4 に答える 4

1

このような単純なものはあなたにとってうまくいきますか?

SELECT DISTINCT ID, CreatedBy, SeminarDate
FROM CUSTOMERDB.dbo.Seminars
ORDER BY SeminarDate DESC
于 2013-07-17T09:09:20.953 に答える
0

次のクエリが役立つ場合があります。唯一の問題は、特定の所有者に対して同じ日付の 2 つのセミナーがある場合です。この場合、クエリは、この日付の所有者のすべてのセミナーを返します。

;WITH T AS
  (
    SELECT MAX(Date) AS Date, Owner
      FROM Seminars
      GROUP BY Owner
  )
SELECT S.*
  FROM T
  INNER JOIN Seminars S ON T.Owner=S.Owner AND T.Date=S.Date
  ORDER BY S.Date
于 2013-07-17T09:41:40.010 に答える
0

select * from セミナー order by datediff(SemindarDate,getDate) desc

于 2013-07-17T09:14:28.440 に答える