2017-05-07 6 views
2
SELECT LOGS.UserID, LOGS.UserName, LOGS.TransactionTime FROM LOGS 
WHERE LOGS.TransactionTime BETWEEN DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T06:00:00') AND DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T08:00:00') 

これは私の最初のクエリです。私は、労働者が私のLOGSテーブルから働き始める結果を得る。最初にtable1をクエリして、結果+ table2を同時に2番目のクエリにする方法

私はWorkersという名前の別のテーブルを持っています。そこにはすべてのワーカーが含まれています。

私はmyfirstquery.UserID with Workers.UserIDを比較したいと、そのクエリは、誰が(その日働いていない人を意味します)myfirstqueryではありませんが、私は1つのクエリでそれを行う必要があり、私を示さなければなりません。

答えて

3

あなたがnot exists演算子を使用することができます。

SELECT * 
FROM workers w 
WHERE NOT EXISTS (SELECT * 
        FROM logs l 
        WHERE w.UserId = l.UserId AND 
          l.TransactionTime BETWEEN 
          DATEADD(day, DATEDIFF(day, '20010101', GETDATE()), '2001-01-01T06:00:00') AND 
          DATEADD(day, DATEDIFF(day, '20010101', GETDATE()), '2001-01-01T08:00:00') 
+0

同じ 'すぎ演算子をIN'しないで使用して達成することができます – Hexxx

関連する問題