我需要這樣做:凡在where子句中 - 第2版:-)
有一個名爲table1的它表有一個員工id列,狀態列具有值1和只有0和部門之柱值100,101,102。
我想列出與狀態的所有僱員= 0
從上面的列表我要篩選其中具有僱員(其狀態部門= 100和= 1)
擴展問題:
我想只包括其部門100,距離狀態= 0員工列表狀態= 1
請幫我
我需要這樣做:凡在where子句中 - 第2版:-)
有一個名爲table1的它表有一個員工id列,狀態列具有值1和只有0和部門之柱值100,101,102。
我想列出與狀態的所有僱員= 0
從上面的列表我要篩選其中具有僱員(其狀態部門= 100和= 1)
擴展問題:
我想只包括其部門100,距離狀態= 0員工列表狀態= 1
請幫我
我猜你已經正確的話來說,想OR代替AND,試試這個..
select *
from table1
where (status=0) or (status=1 and department=100)
編輯
如果你只是想那麼僱員這樣做
select employeeid
from table1
where (status=0) or (status=1 and department=100)
編號2
涵蓋所有的基礎,如果你想找到所有的員工誰沒有0的狀態,或狀態1和100的部門然後試試這個!
select employeeid
from table1
where not (status=0) and not (status=1 and department=100)
這沒有道理......你要篩選其狀態爲0 一旦你已篩選這些記錄要重新過濾該原始濾波器包括有100部所有員工的所有員工(其中仍然可以),但是然後你想要的狀態是1.怎麼能給你說你在原來的要求,你只是想僱員0狀態???
想一想,並從試圖回答您的問題的人那裏拿出來。 您有10條記錄,其中一半有員工0狀態,另一半有1狀態。
Jon1 1
Jon2 1
Jon3 1
Jon4 1
Jon5 1
JOn6 0
Jon7 0
Jon8 0
Jon9 0
Jon10 0
所以,你希望所有員工以0:
JOn6 0
Jon7 0
Jon8 0
Jon9 0
Jon10 0
簡單:SELECT blah FROM Employees WHERE Status=0
現在,你想擁有的100他們的部門數量與另一查詢,但有1狀態好如何篩選狀態爲0的狀態爲1的狀態?
你可能想OR條件:
SELECT blah FROM myTable WHERE EmpStatus=0 OR (EmpStatus=1 AND Dept=100)
這顯然是一個不同的問題...
我猜你忽略了這個問題語句的重要組成部分:每個employeeid可以在table1中多次。我假設你想用一個記錄員工狀態指示燈的0和指示部門100 /狀態1.
如果是的話,試試這個第二個記錄:
SELECT * FROM Table1 AS E0
INNER JOIN Table1 AS D100
ON E0.EmployeeID = D100.EmployeeID
WHERE E0.Status = 0 AND D100.Department = 100 AND D100.Status = 1
如果我正確理解你的問題,這應該接近你想要的。
+1在盒子外面思考我被困在:-) – CResults 2010-03-10 18:14:39
如果你有多個具有相同EmployeeID的行(這裏只是猜測),那麼你可能想要嘗試下面的查詢。
Select EmployeeId
From Table1
Group By EmployeeId
Having Count(Case When Status = 0 Then 1 End) > 0
And Count(Case When Status = 1 And Department = 100 Then 1 End) > 0
可能是這樣的,如果我正確地理解你。
SELECT *
FROM emp_dept e1
WHERE status = 0
AND EXISTS(SELECT *
FROM emp_dept e2
WHERE e2.id = e1.id
AND e2.status = 1
AND e2.dept = 100)
我想你應該顯示一些樣本數據和預期結果。 – 2010-03-10 17:50:12
第一個列表過濾所有狀態= 0,再次過濾到狀態= 1將在所有情況下產生0結果,澄清一點? – 2010-03-10 17:50:46
如果列表的狀態爲0,那麼status = 1的過濾器將不起作用。 你還試過了什麼,結果有什麼問題 – Mark 2010-03-10 17:50:48