我有一個表另一個記錄檢查,如果再找到特定的記錄找到與同組
主表
PROBLEM_ID PROBLEM PGROUP
1 Other Hardware Hardware
2 Error On hardware Hardware
3 PM Hardware
4 Service Maintenance
和細節
TERM PROBLEM PROBLEM_ID
S1G166901 PM 3
S1G166902 PM 3
S1G166903 Service 4
S1G166902 Other on hardware 1
S1G166901 Service 4
S1G166901 Other Hardware 1
S1G166901 Error on Hardware 2
我需要的,如果PROBLEM_ID
查詢= '41'然後找到PROBLEM
有PGROUP
='硬件'
這樣
TERM PROBLEM PROBLEM_ID PGROUP
S1G166901 PM 3 Hardware
S1G166901 Other hardware 1 Hardware
S1G166901 Error on hardware 2 Hardware
S1G166902 PM 3 Hardware
S1G166902 Other Hardware 1 Hardware
我嘗試使用外適用,但它的回報太行
我具體的結果是,如果他們不包含PROBLEM_ID
=「41」,那麼將不顯示,但如果含有會通過長期顯示出與PGROUP = '硬件' 的所有問題
我試試這個
SELECT p.TERM, p.Problem_ID,p.problem, PGROUP
FROM Problem_log AS p
CROSS APPLY (
SELECT s.pgroup, s.problem_id
FROM problem AS s
WHERE s.problem_id = p.problem_id AND PGROUP = 'Hardware' )as s
WHERE exists (Select s.PGROUP,s.PROBLEM_ID
from PROBLEM_LOG
WHERE problem_log.PROBLEM_ID = '41' GROUP BY term)
ORDER BY TERM
我的順序是 - 從PROBLEM_ID = '41' 表problem_log選擇數據
- 如果PROBLEM_ID = '41',那麼對於每個記錄檢查中發現的其他問題(僅硬件)
你只需要擁有INNER JOIN與主表,並在SELECT語句中使用PGROUP此查詢。 – 2015-03-25 03:40:32
@PareshJ @PareshJ我的具體結果是,如果他們不包含PM,那麼將不會顯示,但如果包含將按術語顯示pgroup ='Hardware'的所有問題,但如果我使用inner join,它會顯示所有權利?我只需要,如果問題='PM'存在 – 2015-03-25 03:44:28