以下のデータが与えられた場合、どのようにして希望の結果を得ることができますか?1行結果で対応する行を取得しますか?
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
編集:拡張サンプルデータと結果は、いくつかの混乱を避けるために。
私が実際に開発する必要があるクエリは、はるかに複雑です。私はちょうどこれが私に論理的なハードルの1つに良いジャンプスタートを与えると思った。
- :私は誰もが私が試したかを知ることになるでしょう知っているので、ここでは実際の構造からの私の現在、恥ずかしい、反復は...私はタックルしようとしている
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
- タイプ
XDSb_QueryRequest
- のメッセージに対する
TimeCreated
値はを使用して対応するXDSb_QueryResponse
ためTimeCreated
値をゲットしよう共通の値として。Organization | RequestReceived | ResponseSent
このシステムはPIVOT /ピボットテーブルをサポートしていますか? –
私は見ることができません:http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL –
私はMSSQLによってとても甘やかされています:) –