2017-01-16 79 views
0
Select 
    Query_2.[Date Assigned], Query_2.ID, 
    Query_2.Aging, Query_2.[Date/Time Opened] 
From  
    Query_2 
Where 
    (((Query_2.[Date Assigned]) In (Select [Date Assigned] 
            From Query_2 As Tmp 
            Group By [Date Assigned], ID 
            Having Count(*) > 1 
             And ID = Query_2.ID)) 
    And ((Query_2.[Date/Time Opened]) = (Select Max([Date/Time Opened]) 
             From Query_2 As Tmp 
             Group By [Date Assigned], ID 
             Having Count(*) > 1 
              And ID = Query_2.ID)) 
     ) 

有人可以幫我嗎?我無法弄清楚什麼是錯誤,因爲當我第一次這樣做時,查詢最初運行成功。此子查詢最多可以返回一條記錄錯誤

在此先感謝!

補充說明:

基本上,我試圖消除重複的,重複的應該是最新的和所有我想要得到的獨特之處是第一次約會。我希望這很清楚。我會在稍後回顧下面的答案,看看它是否有效。再次感謝你的幫助!

+0

您有一個子查詢,它返回需要單個標量值的點中的多個記錄。 –

+0

SELECT GROUP BY GROUP BY可以返回多行 –

+1

請添加您的DBMS –

回答

0

我認爲你可以做你想要更輕鬆地與row_number()什麼:

select q2.* 
from (select q2.*, 
      row_number() over (partition by id order by [Date Assigned] desc, [Date/Time Opened] desc) as seqnum 
     from Query_2 q2 
    ) q2 
where seqnum = 1; 

這得到與每個id最近分配的日期最新的打開時間記錄。這似乎是您的查詢嘗試執行的操作。