Я хотел бы получить данные за 2 часа с указанием c даты? Ниже приведен вывод, когда я пытался выполнить мой ниже измененный запрос. Это то, что я сейчас получаю (см. Результат (1)).
Что я хотел бы получить в качестве выходных данных, так это захватить последние 2-часовые записи на определенную c дату (см. Результат (2)).
Результат (1):
LoadingDatetime | Iphone
--------------------+-------
2020-03-26 09:00:00 | 16
Результат (2):
LoadingDatetime | Iphone
--------------------+-------
2020-03-26 01:00:00 | 56
2020-03-26 01:00:00 | 10
2020-03-25 03:00:00 | 23
2020-03-25 05:00:00 | 13
2020-03-25 07:00:00 | 13
Я полагаю, что мне здесь чего-то не хватает, я был бы признателен, если бы вы помогли мне точно определить или добавить важный фрагмент.
Ниже приведен мой запрос для вашей справки.
SELECT
DATEADD(HOUR, -2, DATEADD(HOUR, DATEDIFF(HOUR, '1900-01-01', GETDATE()), 0)) LoadingDateTime2,
(SELECT COUNT(Id)
FROM dbo.Products
WHERE [LoadingDateTime] >= DATEADD(HOUR, -2, DATEADD(HOUR, DATEDIFF(HOUR, '1900-01-01', GETDATE()), 0))
AND [LoadingDateTime] < DATEADD(HOUR, DATEDIFF(HOUR, '1900-01-01', GETDATE()), 0)) LoadCount,
COUNT(CONVERT(int, [Apple_Iphone])) Apple_Iphone,
COUNT(CONVERT(int, [Peripheral_Devices])) Peripheral_Devices,
COUNT(CONVERT(int, [Desktops])) Desktops,
COUNT(CONVERT(int,[Laptops])) Laptops,
COUNT(CONVERT(int, [Desktops]) + CONVERT(int, [Laptops])) IT_Devices
FROM
dbo.Products
WHERE
[Apple_Iphone] = 2
AND [Peripheral_Devices] = 2
AND [Desktops] = 2
AND [Laptops] = 2
ORDER BY
LoadingDateTime2