我有一個表是這樣的:SQL查詢來獲取只只值1的行中的另一列
我需要一個查詢只返回那些專案編號的僅具有國家= 21。 即我想只專案編號2 & 5.
我不希望這些記錄與專案編號1,3,4 & 6,因爲在這些情況下,該狀態也等於其它數目
我有一個表是這樣的:SQL查詢來獲取只只值1的行中的另一列
我需要一個查詢只返回那些專案編號的僅具有國家= 21。 即我想只專案編號2 & 5.
我不希望這些記錄與專案編號1,3,4 & 6,因爲在這些情況下,該狀態也等於其它數目
推理是這樣
HAVING
子句SQL語句
SELECT ProjectID
FROM table t1
INNER JOIN (
SELECT ProjectID
FROM table
WHERE state = 21
) t2 ON t2.ProjectID = t1.ProjectID
GROUP BY
ProjectID
HAVING COUNT(*) = 1
select ProjectID,count(State) from table group by ProjectID having count(state)=1;
你是第一個給出答案的人,所以我將你的標記標記爲已接受。 – 2011-04-29 14:15:06
@dev - 它做你需要什麼?那樣的話,我誤解了你的問題。 – 2011-04-29 14:17:08
由方式選擇所有與單個狀態值,該值(「值」)是項目,等於指定之一:
SELECT ProjectID
FROM atable
GROUP BY ProjectID
HAVING COUNT(*) = 1
AND MAX(State) = @State
您還可以使用MIN
,SUM
,或AVG
具有相同EFF檢查的State
值等(因爲它應該是唯一的價值)。
謝謝你的解釋。 – 2011-04-29 14:15:21