Извлечение всех данных за 2 часа на указанную дату c с помощью запроса SQL - PullRequest
0 голосов
/ 26 марта 2020

Я хотел бы получить данные за 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
...