Учитывая следующие данные, как получить желаемый результат ниже?Получить соответствующие строки в результатах одной строки?
Timestamp | Session ID | Event | Name
------------------------------------------
08:15 | 89 | Login | Scott
08:16 | 89 | Edit | Scott
08:16 | 92 | Login | John
08:17 | 92 | Refresh | John
08:23 | 89 | Logout | Scott
08:28 | 92 | Logout | John
08:30 | 96 | Login | Scott
08:37 | 96 | Logout | Scott
желаемый результат (в основном список сеансов длительностей):
Name | Login | Logout
------------------------
Scott | 8:15 | 8:23
John | 8:16 | 8:28
Scott | 8:30 | 8:37
редактирование: расширенные данные выборки и результаты, чтобы избежать некоторой путаницы.
Вопрос, который мне действительно нужен, намного сложнее. Я просто подумал, что это даст мне хороший прыжок на одном из логических препятствий. Так как я знаю, что все хотят знать, что я пытался, вот мой текущий, неловко, итерация от фактической структуры ...
SELECT
SessionId,
SAMLData_Organization,
(Select TimeCreated FROM ens.messageheader h1,HS_Message.XMLMessage m1 WHERE h1.SessionId = h3.SessionId and m1.name = 'XDSB_QueryRequest') as RequestRecieved,
(Select TimeCreated FROM ens.messageheader h1,HS_Message.XMLMessage m1 WHERE h1.SessionId = h3.SessionId and m1.name = 'XDSB_QueryResponse') as ResponseSent
FROM
ens.messageheader h3,HS_Message.XMLMessage m3
WHERE SessionId IN (SELECT Distinct SessionId FROM ens.messageheader WHERE TimeCreated >= '2016-08-22 08' AND TimeCreated < '2016-08-22 17')
Вещи, которые я пытаюсь решить:
- Регистрация
ENS.MessageHeader
иHS_Message.XMLMessage
- Получить значение
TimeCreated
для сообщений типаXDSb_QueryRequest
- Получить значение
TimeCreated
для соответствующегоXDSb_QueryResponse
с помощьюSessionId
в качестве общей стоимости. - Возвращает результаты как
Organization | RequestReceived | ResponseSent
Поддерживает ли эта система таблицы PIVOT/pivot? –
Не то, что я могу видеть: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL –
Я настолько испорчен MSSQL :) –