Я уже давно застрял в этом вопросе. Думаю, я очень близка, но кое-что мне не хватает.Показать только одну запись, которая может или не иметь детей
Сделка может иметь ноль или множество TransactionErrors. Я пытаюсь показать все транзакции только один раз, и я также пытаюсь отобразить только последнее сообщение об ошибке, если оно есть.
SELECT [Transaction].[TransactionID]
,[FileName]
,[DestinationSystem]
,[CreatedOn]
,LEFT([TransactionError].[ErrorMessage], 300) AS LatestErrorMessage --Gets only the first 300 characters of the error message
FROM [WM01DB].[dbo].[Transaction]
INNER JOIN SourceSystem ON SourceSystem.SourceSystemId = Transaction.SourceSystemId
LEFT JOIN TransactionError ON TransactionError.TransactionId = Transaction.TransactionId
WHERE Transaction.CreatedOn >= '2014-08-01 00:00:00.000'
AND Transaction.CreatedOn < '2014-09-02 00:00:00.000'
ORDER BY [CreatedOn], [Transaction].[TransactionID]
Когда я запускаю этот запрос, я получаю большую часть результатов, которые я хочу, но я получаю повторяющиеся операции, поскольку эти операции имеют несколько TransactionErrors. Похоже, что это ...
TransactionID FileName DestinationSystem CreatedOn LatestErrorMessage
18124 201408131541517937_DC_TEST_3339376-4.1.xml TEST 2014-08-18 18:31:19.993 U_BOL and Tracking Number are blank
18124 201408131541517937_DC_TEST_3339376-4.1.xml TEST 2014-08-18 18:31:19.993 FRT_CHG_TYPE is blank
18125 201408111521484448_DC_TEST_3339375-2.1.xml TEST 2014-08-19 16:04:58.467 NULL
18126 201408111521484448_DC_TEST_3339375-2.1.xml TEST 2014-08-19 16:09:00.467 NULL
тьфу ... недурна блок кода ...
Как вы можете видеть, есть повторяющиеся TransactionIDs, как показано с 18124. Я хотел 18124 отобразить только один раз с последним сообщением об ошибке. Единственный способ получить последнее сообщение об ошибке - использовать последний TransactionErrorID для конкретного транзакционного идентификатора ...
Пожалуйста, помогите! :(
По какой-то причине я не мог запустить этот запрос. –
Я угадал имена столбцов, какую ошибку вы получили? –
Какая бы проблема ни была, это, должно быть, был я. Это, безусловно, лучший способ сделать это. –