эта ошибка подзапроса может возвращать не более одной записи

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))
        )

Кто-нибудь может мне помочь? Я не мог понять, что будет ошибкой, так как, когда я впервые сделал это, запрос изначально успешно выполнялся.

Заранее спасибо!

ДОБАВЛЕНО ПРИМЕЧАНИЕ:

В основном, я пытался удалить дубликат, дубликат должен быть самым последним, и все, что я хочу получить как уникальный, это первое свидание. надеюсь, это понятно. я рассмотрю ниже Ответы позже, и посмотреть, если это работает. еще раз спасибо за помощь!

1 ответ

  1. Я думаю, что вы можете сделать то, что вы хотите более легко с 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. Похоже, именно это и пытается сделать ваш запрос.