Есть ли альтернатива MIN (), которая может вернуть полное значение datetime? - PullRequest
0 голосов
/ 30 января 2019

Я добавил таблицу в базу данных для нашей системы ERP для отслеживания информации, связанной с датой отправки, и мне нужно идентифицировать первую и последнюю записи даты и времени.Таблица заполняется триггером, который у меня есть в другой таблице, и заполняется датой, когда изменение было записано обратно в базу данных.

SELECT     
TOP (100) PERCENT 
SalesOrder, 
MIN(NewShipDate) AS NewShipDate,
MAX(OldShipDate) AS OldShipDate
FROM dbo.ShipDateHistory
GROUP BY SalesOrder

Как и ожидалось, MIN (NewShipDate) возвращает минимальное значение;проблема в том, что в одну и ту же дату может быть несколько записей, поэтому я пытался найти способ, чтобы она возвращала полную минимальную дату / время из таблицы.

Результаты, которые я вижу для min (), просто показываютдата:

000000000172682 2019-01-29  NULL  

Это верно для даты, однако в таблице для этого заказа на одну и ту же дату есть две записи:
Образец таблицы:

SalesOrder  OldShipDate NewShipDate LastOperator    ChangeDate  
000000000172682 NULL    2019-01-29  RJB 2019-01-29 09:41:13.150  
000000000172682 NULL    2019-01-29  RJB 2019-01-29 09:41:40.097  

В идеалеЯ бы увидел полное время:

000000000172682 2019-01-29 09:41:13.150 NULL

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Возвращается полная дата-время;Теперь, чтобы отработать другой выбор.

0 голосов
/ 30 января 2019

Может ли это быть?

SELECT
 TOP (100) PERCENT SalesOrder, NewShipDate AS NewShipDate, OldShipDate AS OldShipDate FROM dbo.ShipDateHistory 
where NewShipDate = (Select min(NewShipDate) from dbo.ShipDateHistory group by SalesOrder)
...