我有一個表像這樣的Oracle SQL:加入相同的表,獲取所需的輸出
FILEID | FILENAME | STATUS
100 |Employee_06102016.txt |PASS
100 |Employee_06092016.txt |FAIL
100 |Employee_06092016.txt |MISS
101 |ABC_06092016.txt |PASS
我讀從文件的文件名,並傳遞給SQL。比方說,我只有文件名'Emplyee_06102016.txt'這是與PASS staus。有了這個,我需要加入同一個表,並採取具有相同文件ID的PASS和FAIL文件名的計數,並且應該排除MISS狀態。
我想這樣下面的東西,但計數爲3包括所有。我應該只得到2
SELECT COUNT (T.FILEID) FROM TABLE_NAME T, TABLE_NAME S
WHERE T.FILEID=S.FILEID
AND T.FILENAME = 'Employee_06102016.txt' AND T.STATUS IN ('PASS', 'FAIL');
爲什麼你需要重新加入相同的表? –
我需要計算具有相同fileid的PASS&FAIL狀態。我只有一個記錄的文件名。所以我應該加入合適嗎? – Karthik
'Select FileName,count(t.status) from Table_name t 其中t.fileName ='Employee_06102016.txt'和Status <>'FAIL'Group by FileName'您失敗的原因是因爲(如果您需要自加入)你只需要包含('PASS','FAIL')的s.status。否則你得到一個加入失敗記錄,導致你得到3記錄,而不是2. – xQbert