相同的狀態出現了多次的行嘗試使用EXISTS()選項並檢查COUNT(*)
SELECT *
FROM dbo.test16 t
WHERE t.Config_Type != 2 AND EXISTS (
SELECT 1
FROM dbo.test16 t2
WHERE t.Networkelemenid = t2.Networkelemenid
GROUP BY t2.Networkelemenid, t2.Config_Type
HAVING COUNT(DISTINCT t2.Status) > 1
)
此腳本將數據分組在t2.Config_Type上。 HAVING COUNT(DISTINCT t2.Status)指定只有唯一行可以出現在結果集中(例如1,2 = 2; 1,1或2,2 = 1)
對於第二種情況,您需要此腳本
SELECT *
FROM dbo.test41 t
WHERE t.Config_Type != 2 AND EXISTS (
SELECT 1
FROM dbo.test41 t2
WHERE t.Networkelemenid = t2.Networkelemenid
GROUP BY t2.Networkelemenid, t2.Config_Type, t2.Status
HAVING COUNT(t2.Status) > 1
)
不幸的是,我沒有得到正在期待的正確輸出。請參考上表和記錄。在這一點上,你可以看到每個N_Elem_Id的Config_Type爲3個記錄爲「1,1和2(標記爲RED)」,狀態列的值可能會隨着1和2的任意組合而改變。首先,我想獲得具有Config_Type!= 2,所以我會爲每個N_Elem_Id而不是3個記錄得到2條記錄。然後我的情況就在這裏。 – 2013-03-15 23:39:28
條件:如果看到「狀態」列,我已突出顯示N_Eleme_ID爲2,11和16的紅色顏色值,類似於(1,1或2,2)。但是,如果看到其他N_Elem_Id 3,4,5具有不同的值(1和2或2和1)。最後,我只需要具有N_Elem_Id和3,4和5的記錄而不使用不同的記錄。 – 2013-03-15 23:39:44
@Srinivasan Rajagopal我沒有看到你的例子在上面的問題。 – 2013-03-16 07:51:25