Невозможно получить 2 записи на основе поля максимальной даты в SQL Server - PullRequest
0 голосов
/ 15 марта 2019

Я пишу сценарий SQL в Visual Studio, и у меня есть 2 таблицы, одна из которых называется ATB, которая имеет уникальные строки для Account ID с, а вторая таблица тоже содержит AccountID, а другой столбец называется SettlementTypeIDэтот второй столбец имеет повторяющиеся значения, поскольку в нем хранятся записи об изменениях, выполненных в AccountID, что означает, что он может иметь 10 строк с таким же AccountID, но с другим Lastmodified столбцом даты.

IЯ делаю соединение между ними, чтобы получить SettlementTypeID для каждого AccountID в таблице ATB, используя MAX(LastModifiedDate), чтобы избежать получения дубликатов значений, но для некоторых AccountIDs не работает вообще

Ниже приведен мой текущий код:

SELECT 
    t.AccountID,
    r.SettlementTypeID,
    r.LastModifiedDate
FROM
    (SELECT 
         accs.AccountID,
         accs.SettlementTypeID,
         MAX(accs.LastModifiedDate) AS LastModifiedDate
     FROM 
         AccountSettlement accs
     INNER JOIN 
         #ATB atb WITH (nolock) ON atb.AccountID = accs.AccountID
     WHERE
         atb.ReferenceType = 'Settlement' 
         AND atb.SettlementType IS NULL
     GROUP BY 
         accs.AccountID, accs.SettlementTypeID) r
INNER JOIN 
    AccountSettlement t ON t.AccountID = r.AccountID 
                        AND t.SettlementTypeID = r.SettlementTypeID 
                        AND t.LastModifiedDate = r.LastModifiedDate

Я не знаю, что я делаю неправильно, но когда я удаляю столбец SettlementTypeID и просто оставляю столбцы accountID и LastmodifiedDate, он работает, как ожидалось.

Ниже приведена небольшая часть того, что я получаю:

Data being pulled

И это данные, которые скрипт долженпредоставлять на основании максимальной найденной даты:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...