В SQL мне нужен набор результатов, основанный на разнице в часах между двумя полями datetime. Например, набор результатов должен быть, как этотМножественные условия Where или Join на одной и той же таблице SQL Server
мне нужно GroupBy по USERID, StartDate
Я немного запутался об использовании Sub Query или соединение между одним столом. Так, помоги мне выйти из этого
+----------------------------------------------------------------+
| USERID Date 6to7 7to8 8to9 9to10 10to11 |
+----------------------------------------------------------------+
| 119 2016-03-07 5 |
| 119 2016-03-10 18 |
| 5 2016-03-08 8 |
| 5 2016-03-10 7 |
| 25 2016-03-09 2 20 |
| 30 2016-03-11 5 |
+----------------------------------------------------------------+
таблица выглядит, как показано ниже
ID UserId StartDate EndDate
7494 119 2016-03-07 06:35:55.000 2016-03-07 06:40:55.000
7495 5 2016-03-08 06:02:33.000 2016-03-08 06:10:33.000
7496 25 2016-03-09 07:58:33.000 2016-03-09 08:20:33.000
7497 25 2016-03-09 07:54:20.000 2016-03-09 07:56:20.000
7498 119 2016-03-10 08:35:55.000 2016-03-10 08:53:55.000
7499 5 2016-03-10 09:02:33.000 2016-03-10 09:09:33.000
7500 30 2016-03-11 08:58:33.000 2016-03-11 08:59:33.000
7501 30 2016-03-11 08:54:20.000 2016-03-11 08:58:20.000
Это код, который я попытался
SELECT UserID,
StartDate,
(SUM(DATEDIFF(SECOND, CAST(SWITCHOFFSET(TODATETIMEOFFSET(StartDate, '-00:00'), '+06:00') AS DATETIME),
CAST(SWITCHOFFSET(TODATETIMEOFFSET(EndDate, '-00:00'), '+06:00') AS DATETIME))
))'HRS6TO7'
FROM TMCallResultLog
WHERE CAST(StartDate AS TIME) BETWEEN '06:00:00' AND '07:00:00' AND
EndDate IS NOT NULL AND
StartDate IS NOT NULL
GROUP BY UserID, StartDate
Пожалуйста, добавьте код, который вы пробовали. – Sefe
Да, я добавил @Sefe –
@ dineshsns вы можете рассказать о своей выходной таблице? что обозначают эти значения в столбцах 6-7, 7-8 и т. д. ... они считаются? – balaji