2013-05-28 52 views
0

我有一個表格,其中包含以下列。它用於跟蹤用戶在其計算機上運行的開始和結束日期的軟件應用程序。SQL - 根據多個條件組合

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查詢?提前致謝!

回答

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) 
+0

查爾斯,感謝您的回答。我忘了在原始問題中提到一個要求,所以我修改了它。您是否可以隨意更新您的查詢?......多個應用程序同時運行超過2天... – Thracian