2011-07-11 67 views
0

可樂COLB COLC冷
DATA1 rata1Ť測試1
DATA1 rata3˚F的Test2
DATA1 rata2Ť測試1
DATA2 rata1Ť測試1
DATA2 rata3Ť測試1
DATA3 rata4Ť測試1
甲骨文聚合的查詢

有四列Varchar類型。我想要確定的是: -
1.對於ColB(rata1,rata2等)的每個唯一值,找到ColA和其他兩列(ColC,ColD)的相應值,其中ColA的該特定值的ColC值等於'T'0或1次。

rata2 data1 T Test1 
rata3 data2 T Test1 
rata4 data3 T Test1 


2.在上面的查詢時COLC等於「T」 0或1次中,找到的可樂具有COLC等於「F」爲COLB的該特定值的其他行。

rata3 data1 F Test2 
+1

這絕對沒有意義。 –

+0

did not understand :( –

+0

@Isaac:請參閱其他回覆和我對此的評論 –

回答

1

根本不理解你的問題。如果你說別的話,我會更正答案。但據我瞭解你想要這樣的東西?

編輯︰我做了你在DB給我們的同一張表。這工作得很好。試試吧,告訴我,如果它的工作原理

SELECT COLUMNB,MAX(COLUMNA), MAX(ColumnC), MAX(COLUMND) 
FROM DUMMY 
WHERE ColumnC = 'T' 
GROUP BY COLUMNB 
HAVING SUM(CASE WHEN COLumnC = 'T' THEN 1 ELSE 0 END) <= 1 

UNION ALL 
SELECT * 
FROM DUMMY 
WHERE COLumnC = 'F' 

編輯2:這個是什麼?

WITH B 
AS(
SELECT A.COLUMNB, MAX(A.COLUMNA) AS COLUMNA, MAX(A.ColumnC) AS COLUMNC, MAX(A.COLUMND) AS COLUMND 
FROM DUMMY A 
GROUP BY A.COLUMNB 
HAVING SUM(CASE WHEN A.COLumnC = 'T' THEN 1 ELSE 0 END) <= 1) 


SELECT * 
FROM B 

UNION ALL 
SELECT D.COLUMNB, D.ColumnA, D.ColumnC, D.ColumnD 
FROM B, DUMMY D 
WHERE B.ColumnB = D.COLUMNB 
AND D.ColumnC = 'F' 
+0

非常感謝您的寶貴建議,他們非常有幫助第一個查詢效果很好,其中對於您檢索的ColB的每個唯一值ColA的特定值的ColC值等於'T'0或1次現在,在這種情況下,對於查詢2-,如果ColA的特定值具有等於'T'的ColC 0或1次找到那些行ColA對於ColB的具體價值,ColC等於'F'。如果事情不清楚,請提問。 –