J'ai une table
Table principale
PROBLEM_ID PROBLEM PGROUP 1 Other Hardware Hardware 2 Error On hardware Hardware 3 PM Hardware 4 Service Maintenance
et un détail
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
Je dois interroger si PROBLEM_ID
= '41' puis find un PROBLEM
qui a PGROUP
= 'Matériel'
comme ça
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
J'essaie d'utiliser Outer appliquer mais c'est trop de return
mon résultat spécifique est s'ils ne contiennent pas PROBLEM_ID
= '41' alors ne montrera pas mais si contain montrera tout le problème avec pgroup = 'Matériel' par terme
j'essaye
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
ma séquence est – Sélectionnez datatables de la table problem_log pour problem_ID = '41'
Je pense que cette requête devrait fonctionner dans votre cas.
Select DISTINCT D.TERM, M.PROBLEM, M.PROBLEM_ID, M.PGROUP From Problem M Inner Join Problem_log D ON M.PROBLEM=D.PROBLEM WHERE (D.TERM IN (Select TERM FROM Problem_log D1 Inner Join Problem M1 ON M1.PROBLEM=D1.PROBLEM Where D1.PROBLEM_ID=D.PROBLEM_ID And M1.PGROUP='Hardware' AND D1.Problem='PM')) ORDER BY TERM,PROBLEM
Vous pouvez essayer cette requête sur le violon
Vous avez juste besoin d'utiliser INNER JOIN avec la table Master pour get PGROUP pour chaque ProblemID
Vérifiez la requête ci-dessous:
SELECT D.TERM, D.PROBLEM, D.PROBLEM_ID, M.PGROUP FROM Details D INNER JOIN Master M ON D.ProblemID = M.ProblemID WHERE EXISTS (SELECT * FROM Details WHERE PRoblem = 'PM' AND TERM = D.TERM)
Pouvez-vous essayer cela
SELECT dt.Term, dt.Problem, dt.ProblemID FROM DetailsTable dt JOIN MasterTable mt ON dt.ProblemID = mt.ProblemID JOIN MasterTable mt1 ON mt.PGroup = mt1.PGroup and mt1.Problem = 'PM' ORDER BY dt.Term