2016-03-28 5 views
0

過去30日間にログオンしていないユーザーを表示するクエリを作成しようとしています。私がこれを行う方法は、3つの別々のWIPテーブルを使用することです。私は私が操作を行うための試みで書かれたもので、ユーザーがWIPとWIP7Histではありませんが、唯一WIP30Histでここでここでoutは置く表示したい:SQLで3つのテーブルを結合し、テーブルの2つにないユーザーのユーザー名を出力します。

Select Distinct wc.UserID 
     , CONVERT(Datetime,wc.ShiftDate) as TimeDate 
From WIP30Hist wc With(nolock) 
Join WIP wa with(nolock) on wc.USerID = wa.UserID 
Join WIP7Hist wb with(nolock) on wc.UserID = wa.UserID 
Where wc.TimeDate <= GETDATE()-30 and wc.UserID Not in(select wa.UserID from WIP) 
and wc.UserID Not in(select wb.UserID from WIP7Hist) 
Group By wc.UserID, wc.TimeDate, wc.ShiftDate 
Order By TimeDate 
+0

これは私がこれのためのタグを見ていないと私は、サイトに新しいです、MicrosoftのSQLのためです。助けをあらかじめありがとう! – Bholl03

答えて

0

私たちは一緒にnot inオペレータでそれを行うことができますunionクエリ、例えば:

select userID 
from WIP30Hist 
where //other conditions 
and userID not in (
select userID from WIP 

union 

select userID from WIP7Hist 
); 
+0

私は正確に日付をやっているかどうか、または私は過去30日になる日付をしたい新しいスレッドを開始する必要があるかどうか私に教えてくれますか? – Bholl03

+0

この回答を見て、過去30日間のデータを取得することができます:http://stackoverflow.com/questions/16645973/how-to-select-data-from-30-days –

関連する問題