Отображать два счета из одного в двух разных столбцах из одной таблицы - PullRequest
0 голосов
/ 24 октября 2018

У меня есть таблица, где я записываю ежедневную работу сотрудников.У меня есть запрос, в котором я отображаю текущую работу на сегодня для каждого сотрудника, и у меня есть другой запрос, в котором я отображаю общее количество работ для каждого сотрудника.

Я хочу объединить 2 запроса в один, где яиметь дневной столбец и накопительный столбец.

мой запрос ниже:

SELECT staff, 
       process_inprogress, 
       not_yet_completed 
FROM   (SELECT staff, 
               Count(number)    AS Process_InProgress, 
               Count(team_name) AS Not_Yet_Completed 
        FROM   dbo.empty_shell_workflow 
        WHERE  ( end_date IS NULL ) 
               AND ( process_name IS NOT NULL ) 
               AND ( billing_amount IS NULL ) 
               AND ( deletion IS NULL ) 
               AND ( team_name = 'Team Vishma' ) 
               AND ( CONVERT(DATE, start_date) = CONVERT(DATE, Getdate()) ) 
        GROUP  BY staff 
        UNION ALL 
        SELECT staff, 
               Count(number)    AS Process_InProgress, 
               Count(team_name) AS Not_Yet_Completed 
        FROM   dbo.empty_shell_workflow AS Empty_Shell_Workflow_1 
        WHERE  ( team_name = 'Team Vishma' ) 
               AND ( billing_amount IS NULL ) 
               AND ( tag_number IS NULL ) 
               AND ( initiator IS NOT NULL ) 
               AND ( end_date IS NULL ) 
               AND ( deletion IS NULL ) 
               AND ( process_name IS NOT NULL ) 
        GROUP  BY staff) AS t

однако он отображается только в одном столбце как для дневного, так и для совокупного

Ниже показано, как я хочу, чтобы он отображал

Staff          Process_Progress(Daily)       Not_YetCompleted(Cumulative)
A                  2                                5
B                  0                                1
C                  6                                8

, однако из приведенного выше запроса в ежедневном столбце отображается кумулятивное значение

Есть идеи, как я могу изменить запрос?

1 Ответ

0 голосов
/ 24 октября 2018

вы можете попробовать, как показано ниже, используя случай, когда

with cte as
   (    SELECT staff,CONVERT(DATE, start_date)  as date_of_month
                   Count(number)    AS Process_InProgress                       
            FROM   dbo.empty_shell_workflow AS Empty_Shell_Workflow_1 
            WHERE  ( team_name = 'Team Vishma' ) 
                   AND ( billing_amount IS NULL ) 
                   AND ( tag_number IS NULL ) 
                   AND ( initiator IS NOT NULL ) 
                   AND ( end_date IS NULL ) 
                   AND ( deletion IS NULL ) 
                   AND ( process_name IS NOT NULL ) 
            GROUP  BY staff,CONVERT(DATE, start_date)
) select staff, sum(case when date_of_month = CONVERT(DATE, Getdate()) then
             Process_InProgress else 0 end) as Process_Progress_Daily,
         sum(case when date_of_month != CONVERT(DATE, Getdate()) then
             Process_InProgress else 0 end) as Not_YetCompleted
             from cte
             group by staff
...