SQL нужно объединить два столбца в зависимости от часа - PullRequest
0 голосов
/ 10 июня 2018

У меня следующий запрос, и мне нужно объединить два столбца Total_here и Total_there на основе hour_interval.Мне удалось выполнить два запроса с помощью UNION, но в основном это создает две строки для каждого часа (одна строка для «Всего нового» и одна строка для «Total_done»).У меня возникают проблемы, когда я пытаюсь преобразовать эти две строки в два столбца.

SELECT 
    hour_interval as hours 
FROM
    SELECT  
        DATEPART(hour, person) as hour_interval,  
        COUNT(person) AS Total_person 
    FROM 
        (SELECT
             CASE
                WHEN DATEPART(hour, x.person) > 12 
                   THEN DATEADD (MINUTE, -1 * DATEPART(minute, x.person) - 1, x.person)
                WHEN DATEPART(hour, x.person) < 4  
                   THEN DATEADD (MINUTE, 55, x.person)
                ELSE x.person 
             END AS person
         FROM 
             new_table) f2

        UNION

        SELECT  DATEPART( hour , done_person ) as hour_interval_1, COUNT(done_person) AS Total_done_person FROM 
        (
            SELECT
            case when DATEPART ( hour , x.done_person ) > 12 then DATEADD (MINUTE,-1 * DATEPART ( minute , x.done_person )-1,x.done_person)
            when DATEPART ( hour , x.done_person ) < 4  then DATEADD (MINUTE, 55,x.done_person)
            else x.done_person end as done_person
            FROM done_table
        ) f3

    group by hours

OUTPUT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...