ligne distincte du server sql à partir de deux tables sur les jointures

Tableau 1

id mobile uid uniqueid time 1 9999 1232 200100 10/6/15 2 9999 1232 200100 11/5/14 3 8888 1232 200100 18/4/16 4 9999 1232 200100 07/7/15 5 9999 1232 200100 4/11/16 

Tableau 2

 id Qid account 1 200100 123456 2 200100 123456 3 200100 123456 

Je ne veux que des données non répétées selon le numéro de mobile

j'ai utilisé la requête comme

 SELECT R.Id,R.MobileNo,R.UId,R.UniqueId,R.Time, ISNULL(C.account,'Not Present'), FROM table1 R LEFT JOIN table2 C ON R.uniqueId=C.QId where and R.deleteStatus='Y' and C.accountNos ='123456' 

La sortie de désir est

 mobile uid uniqueid time account 9999 1232 200100 4/11/16 123456 8888 1232 200100 18/4/16 123456 

J'ai essayé chaque chose dans le server sql mais ne peux pas get la sortie de désir s'il vous plaît aidez-moi !!!!!

Essayez ceci: Cela donnera datatables les plus récentes dans le tableau

 SELECT R.Id,R.MobileNo,R.UId,R.UniqueId,MAX(R.Time),ISNULL(C.account,'Not Present'), FROM table1 R LEFT JOIN table2 C ON R.uniqueId=C.QId AND C.accountNos ='123456' WHERE R.deleteStatus='Y' GROUP BY R.Id,R.MobileNo,R.UId,R.UniqueId,ISNULL(C.account,'Not Present') 

S'il vous plaît essayez ceci:

 with cte as ( SELECT R.Id, R.MobileNo, R.UId, R.UniqueId, R.Time, ISNULL(C.account,'Not Present'), Row_Number() Over(Partition by R.MobileNo order by [time] Desc) as RN FROM table1 R LEFT JOIN table2 C ON R.uniqueId=C.QId where R.deleteStatus='Y' and C.accountNos ='123456' ) Select * from cte Where rn=1 
 CREATE TABLE #TABLE1 ( ID INT, MOBILE INT, UID INT, UNIQUEID INT, TIME DATE ) INSERT INTO #TABLE1 VALUES(1,9999,1232,200100,'6-10-15') INSERT INTO #TABLE1 VALUES(2,9999,1232,200100,'5-11-14') INSERT INTO #TABLE1 VALUES(3,8888,1232,200100,'4-18-16') INSERT INTO #TABLE1 VALUES(4,9999,1232,200100,'7-7-15') INSERT INTO #TABLE1 VALUES(5,9999,1232,200100,'11-4-16') SELECT * FROM #TABLE1 CREATE TABLE #B ( ID INT, QID INT, ACCOUNT INT) INSERT INTO #B VALUES (1,200100,123456), (2,200100,123456), (3,200100,123456) ;WITH CTE AS ( SELECT DISTINCT T1.MOBILE,UID,UNIQUEID,TIME,ACCOUNT, ROW_NUMBER() OVER(PARTITION BY MOBILE ORDER BY [TIME] DESC) AS RN FROM #TABLE1 T1 JOIN #B T2 ON T1.ID=T1.ID AND T1.UNIQUEID=T2.QID ) SELECT MOBILE,UID,UNIQUEID,TIME,ACCOUNT FROM CTE WHERE RN=1