ticketid owner owndate
1001 LEWIS 2004-06-18 14:15:11.000
1001 WILSON 2004-06-18 14:16:54.000
1001 WILSON 2004-06-18 14:21:12.000
1001 NULL 2004-09-01 09:56:11.000
1001 CALDONE 2005-02-02 08:38:28.000
1001 SINCLAIR 2005-02-02 08:54:02.000
1002 NULL 2005-02-02 08:40:06.000
1002 WILSON 2004-06-18 14:33:47.000
1002 NULL 2004-08-31 15:12:46.000
1002 NULL 2004-09-24 10:03:09.000
1003 RAMSDALE 2004-09-24 10:04:24.000
1003 MOTIKA 2004-08-31 14:51:45.000
1003 NULL 2004-08-31 15:05:50.000
1003 MURTHY 2004-09-02 14:50:28.000
1004 NULL 2004-08-31 15:28:37.000
1004 NULL 2004-09-24 09:24:21.000
1005 WILSON 2004-09-02 16:29:43.000
Выход должен бытьКак стержень используется для выбора первых трех владельцев конкретной TicketID
ticketid owner1 owner2 owner3
1001 NULL NULL NULL
1002 NULL NULL NULL
1003 NULL NULL NULL
1004 NULL NULL NULL
1005 NULL NULL NULL
1006 NULL NULL NULL
1007 NULL NULL NULL
1008 NULL NULL NULL
Вместо NULL. Это должно показать разницу в собственном. то есть конкретный владелец назначается на билет в течение долгого времени. Я хочу показать первым трем владельцам конкретного билета. Пожалуйста, руководство. Я подсчитал разницу во времени как:
WITH rows AS
(
SELECT *, ROW_NUMBER() OVER (ORDER BY owndate) AS rn
FROM tkownerhistory
)
SELECT mc.ticketid, mc.owner,mc.owndate
,left('0' + CAST((dATEDIFF(SECOND, mc.owndate, mp.owndate))/86400*30 AS VARCHAR),2) + ' months ' +
left('0' + CAST((dATEDIFF(SECOND, mc.owndate, mp.owndate))/86400 AS VARCHAR),2) + ' days ' +
left('0' + CAST((dATEDIFF(SECOND, mc.owndate, mp.owndate))/3600 AS VARCHAR),2) + ':' +
right('0' + CAST(((dATEDIFF(SECOND, mc.owndate, mp.owndate))/60) % 60 AS VARCHAR),2) + ':' +
right('0' + CAST((dATEDIFF(SECOND, mc.owndate, mp.owndate)) % 60 AS VARCHAR),2)
as TimeDiffInHours
FROM rows mc
JOIN rows mp
ON mc.rn = mp.rn-1
order by mc.owndate
это показывает выход
1001 LEWIS 2004-06-18 14:15:11.000 00 months 00 days 00:01:43
1001 WILSON 2004-06-18 14:16:54.000 00 months 00 days 00:04:18
1001 WILSON 2004-06-18 14:21:12.000 00 months 00 days 00:12:35
1002 WILSON 2004-06-18 14:33:47.000 02 months 07 days 01:13:32
1005 MOTIKA 2004-08-31 14:47:19.000 00 months 00 days 00:04:26
1003 MOTIKA 2004-08-31 14:51:45.000 00 months 00 days 00:14:05
1003 NULL 2004-08-31 15:05:50.000 00 months 00 days 00:06:56
1002 NULL 2004-08-31 15:12:46.000 00 months 00 days 00:15:51
Но я не уверен, как это может быть повернута и только первые три владельцы определенного идентификатора билета выбраны в качестве столбцов и данные будут «timediffinhours»
Для конкретного TicketID вы должны пройти parameter.Secondly первых, вы должны получить основное право запроса, то в дальнейшем вы можете esily поворота it.like SELECT * , ROW_NUMBER() OVER (раздел [owner] ORDER BY owndate) AS rn FROM tkownerhistory где ticketid = 1001.Есть ли оно правильно? – KumarHarsh
Я не могу разбить его владельцем, поскольку я использую номер строки, чтобы рассчитать разницу между двумя собственными датами билета. –
Вы можете получить правильные первые три владельца по вашему запросу? – KumarHarsh