SQL Server: Мне нужно создать отчет с ожидаемым результатом, как указано ниже.SQL Server - Self-Join
Думаю, мне нужно будет использовать самосоединение для извлечения данных в ожидаемом формате. Я прошел все примеры самостоятельного присоединения, но все еще не могу найти правильный запрос для своей проблемы, поэтому, как полагают, проблема возникает здесь.
У меня есть три таблицы, как это:
клиентов
ID CUSTOMERNAME PRODUCTINFO AGENTNUM TRANSID
1 Cust1 Mobile 1234 0001
2 Cust2 Laptop 1234 0002
3 Cust3 Camera 2345 0003
Агент
ID AGENTNAME AGENTNUMBER
1 John 1234
2 Smith 2345
3 Will 3456
Audit Log
ID TRANSID TYPE LOGDATA LOGTIME
1 0001 InquiryI Input data 10/02/2016 18:20:10
2 0001 InquiryO Output data 10/02/2016 18:20:35
3 0002 CreateI Input data 11/02/2015 10:03:50
4 0002 CreateO Output data 11/02/2016 10:04:10
5 0003 InquiryI Input data 15/02/2016 21:44:02
Ожидаемый результат
TRANSID CUSTNAME PRODUCTINFO AGENTNAME TYPE INPUTLOGTIME INPUT OUTPUT
0001 Cust1 Mobile John Inquiry 10/02/2016 18:20:10 data data
0002 Cust2 Laptop John Create 11/02/2015 10:03:50 data data
0003 Cust3 Camera Smith Inquiry 15/02/2016 21:44:02 data
- «данные», упомянутые содержит информацию о входе, который был отправлен и выход, который был получен. Иногда из-за какой-либо проблемы не было выхода, например, в случае запроса
Smith's
. - Также
TYPE
вAuditLog
таблица хранится какInquiryI
иInquiryO
, что, я думаю, мы можем удалить последний символ, используяSUBSTRING
. - Необходимо также показать INPUTLOGTIME, время, в которое был зарегистрирован входной запрос.
Я думаю, нам нужно будет использовать внутреннее соединение с Agent
и Customer
столом и автообъединение между AuditLog
столом, но не работает, как ожидалось.
Помогите пожалуйста.
идти вперед и вставьте SQL вы в настоящее время пытается получить работу – JsonStatham
Что вы пробовали? Как узнать, какая строка аудита принадлежит данному TransID? Кажется, у вас есть разъединение. Вы можете получить запрос, который получит все данные в виде строк? Оттуда вам нужно повернуть или перетащить вкладку, чтобы получить свои столбцы. –
Привет @SeanLange .. Извините, что я ошибочно вошел в AgentNum в таблице AuditLog, на самом деле есть TransactionID в AuditLog. Спасибо, что указали это. :) – vnkotak