0

次の列を持つテーブルがあります。ユーザーがコンピュータで実行するソフトウェア アプリケーションを開始日と終了日とともに追跡するために使用されます。

UserID  StartDate  EndDate    AppName        AppCategory
001     1/1/2013   1/5/2013   MS Word        Office
001     1/1/2013   1/4/2013   MS Excel       Office
001     1/1/2013   1/4/2013   Visual Studio  Development
002     .......    ........   .............  .........

同じアプリケーション カテゴリで 2 日以上にわたって複数のアプリケーションを (同時に) 実行しているユーザーを特定したいと考えています。

上記のサンプル データでは、ユーザー 001 が「Office」カテゴリの Word と Excel を実行しており、両方のアプリが同時に 2 日以上実行されていました。

そのための SQL クエリをどのように記述しますか? 前もって感謝します!

4

1 に答える 1

1

これを試して:

Select Distinct UserId, AppName From table t
Where Datediff(day, startDate, EndDate) > 2
   And Exists
      (Select * From table
       Where userId = t.userId 
          And AppCategory = t.AppCategory
          And Datediff(day, startDate, EndDate) > 2
       Having Count(distinct Appname) > 1)
于 2013-05-28T14:34:11.303 に答える