2014-03-12 69 views
0

我的工作時間表,在這裏我補充工作人員,如果他們要在一個特定的一週的工作。 我想說明工作人員名單該劑量沒有在說每週工作。選擇行,其中字符串劑量不存在

我的表中添加一職,負責每週有人是去工作,所以我怎麼能只收集該劑量不會特定周工作的用戶,沒有得到這方面的另一週的職位。

SELECT tblStaff.strName as staffName, tblWorktable.strName as workName 
FROM tblStaff, tblWorktable 
WHERE tblWorktable.intWeek <> 9 
ORDER BY tblStaff.strName ASC 

此收集未去上班一週NR 9的用戶,當然,它也收集所有正在去上班的用戶,可以說本週NR 10或32,而我呢不想比約一週NR任何其他信息9.

+1

這是工作的一個說法,但問題是缺少。你面臨的問題在哪裏?明確,如果'intWeek'是一個數字字段,那麼你不應該使用''$ week''但'$ week'。你還有什麼問題? – Grzegorz

+0

問題是,如果我使用這個查詢,我沒有得到任何獲得第9周的帖子,但是我確實得到了所有其他沒有9號的帖子,我不想要的女巫。我現在看到這個查詢不是一個好例子,我將編輯帖子。 – MrUnknown

+0

這裏有幾個問題。當你有兩個同名的人時,你會怎麼做?將'staffId'添加到你的桌子不是更好嗎?另外,你可以做的是使用子選擇 - 'WHERE staffId NOT IN(SELECT staffId FROM Worktable WHERE intWeek = $ week)'但是,請注意,如果你的星期只有0..52,那麼你將遇到問題在明年。 – Grzegorz

回答

0

我認爲你可以用這樣的查詢嘗試:

SELECT staffName 
FROM Worktable 
WHERE staffName NOT IN 
    (SELECT DISTINCT staffName FROM Worktable WHERE intWeek = '$week') 
ORDER BY staffName ASC 

這樣,您選擇的所有工作人員,是不是在工作人員的列表那周工作。

+0

就是這樣。謝謝! – MrUnknown