Trying to get the distinct row from multiple tables, depending on Job_Status. i want to only job_status=60 and not in job_status>=90. Sample
STORENAME JOBNO SEQ JOB_STATUS ABC 743 1 20 ABC 743 2 30 ABC 743 3 60 ABC 743 4 60 ABC 743 5 90 ABC 771 1 20 ABC 771 2 20 ABC 771 3 60 ABC 771 4 60 ABC 895 1 10 ABC 895 2 20 ABC 895 3 30 ABC 895 4 30 ABC 895 5 30 ABC 895 6 30 ABC 895 7 30 ABC 895 8 20 ABC 895 9 30 ABC 895 10 30 ABC 895 11 30 ABC 895 12 30 ABC 895 13 60 ABC 895 14 90 ABC 895 15 90
Return expected
STORENAME JOBNO SEQ JOB_STATUS ABC 771 4 60
what i am tried is below
select Distinct * from ( Select UL.StoreName, GD.Job_No, GD.STOREID, GD.Warranty from dbo.SERVICEJOB GD Inner Join dbo.JOBTRACKING AS JT ON JT.JOB_NO = GD.JOB_NO INNER JOIN dbo.DataDetails AS UL ON GD.STOREID = UL.STOREID WHERE (JT.JOB_STATUS=60) AND JT.JOB_STATUS!>90 Group By UL.StoreName,GD.Job_No,GD.STOREID,GD.Warranty ) As U For me returning all means status 90 and more also.
;WITH T AS ( SELECT *, CASE WHEN Job_Status>=90 THEN 0 ELSE 1 END AS IsConsider FROM SERVICEJOB GD Inner Join dbo.JOBTRACKING AS JT ON JT.JOB_NO= GD.JOB_NO INNER JOIN dbo.DataDetails AS UL ON GD.StoreID = UL.StoreID ) SELECT StoreName, JOB_NO, SEQ, Job_Status FROM ( SELECT StoreName, JOB_NO, TRACKING_SEQ Job_Status, ROW_NUMBER() OVER (PARTITION BY JOB_NO ORDER BY SEQ DESC) JobPartNo FROM T WHERE Job_Status=60 AND JOB_NO NOT IN (SELECT JOB_NO FROM T WHERE IsConsider=0) ) AS X WHERE JobPartNo=1 
4190753771in your expected result?