Member 14114251 Ответов: 1

Sql-оператор для получения последнего статуса владельца регистрации в таблице.


Не могли бы вы помочь мне использовать приведенный ниже sql-скрипт, чтобы получить всех владельцев регистраций в системе с последним статусом, в котором находится владелец регистрации.
В таблице а ниже, когда я выполняю этот скрипт ниже, я ожидаю получить верхнюю запись для этого владельца регистрации, например, с последней датой создания (2018-02-27), но это не то, что возвращает скрипт, он возвращает запись с этой датой создания (2007-06-12).
Не могли бы вы помочь, проверив, что не так с моим сценарием ниже.

Таблица А.
Forename1	Surname	     Status	      Created  		       dcStatus
Mmi Eagles	Tshebele	A	2018-02-27 11:40:50.793	          L         
Mmi Eagles	Tshebele	H	2010-02-26 17:24:22.410	          L         
Mmi Eagles	Tshebele	B	2007-11-02 07:47:50.297   	   L         
Mmi Eagles	Tshebele	A	2007-06-12 12:18:46.993 	   L


Что я уже пробовал:

Select 
  d.Forename1,
  d.Surname,
  s.Status,
  s.Created,
  u.dcStatus
   FROM [Warehouse1].[dbo].[User]u
   Inner join [DebtRelief] d
   inner join [Statuses] s
   on s.CrID=d.ID
   on u.UserID = d.Createdby
     where u.dcStatus = 'l' 
   order by s.Created desc

deepankarbhatnagar

Для решения этой проблемы необходимо предоставить все таблицы, используемые здесь, с данными..

1 Ответов

Рейтинг:
2

OriginalGriff

Если вы пытаетесь получить последний статус для каждого владельца регистрации, то вам нужно посмотреть, как начать с SQL GROUP BY оператор[^] чтобы "собрать вместе" все записи о статусе отдельных членов. Затем вы можете вернуть элемент и его последнюю дату, используя агрегатную функцию MAX в качестве подзапроса. Соедините это с вашей таблицей состояния, и вы сможете получить из нее только те строки, которые вам нужны. Присоединение этого к остальным вашим данным должно быть тривиальным.