2012-02-24 15 views
0

私は3テーブル:NamesToDoTasksDoneを持っています。その列の構造は以下の通りである:3テーブルの差分クエリ

'Names' table: 
    Name (nvarchar) 
    Status (nvarchar) 

'ToDo' table: 
    Task (nvarchar) 
    Date (smalldatetime) 
    Name (nvarchar) 

'TasksDone' table: 
    TaskStatus (nvarchar) 
    Date (smalldatetime) 
    Name (nvarchar) 
'Names' table: 
Name | Status 
John | Available 
Ryan | Available 
Sean | NotAvailable 

'ToDo' table: 
Task  | Date  | Name 
Washing | 01.01.2012 | John 
Cleaning | 03.01.2012 | Ryan 
Washing | 04.01.2012 | Sean 

'TasksDone' table: 
TaskStatus| Date  | Name 
Done  | 01.01.2012 | John 
Done  | 02.01.2012 | Ryan 
NotDone | 02.01.2012 | Sean 

私は与えられた日(日)にToDoTasksDoneテーブルで発見されていないStatus='Available'NamesテーブルからすべてのNameを取得したいです。

+0

これは(YOUR_DATEがあなたの日付であると置換する必要があります)してみてください? –

+2

この宿題はありますか? –

+0

努力して試してみて、これまでに試したことを教えてください。 – dansasu11

答えて

1

あなたはjoin` `てみました

SELECT 
    n.Name 
FROM Names n 
LEFT OUTER JOIN ToDo t 
    ON t.Name = n.Name 
    AND t.Date = YOUR_DATE 
LEFT OUTER JOIN TasksDone td 
    ON td.Name = n.Name 
    AND td.Date = YOUR_DATE 
WHERE 
    n.Status = 'Available' 
    AND t.Name IS NULL 
    AND td.Name IS NULL 
+0

ありがとう、愚かな(本当に)!それは私が欲しいものです! – milo2011