Можем ли мы добавить два столбца при выполнении таблицы PIVOT в SQL - PullRequest
0 голосов
/ 19 марта 2019

У меня есть таблица с 3 столбцами. в котором я показываю мудрый отчет по ContainerCount со временем. На рисунке ниже показана фактическая таблица enter image description here

Я делаю сводку для этой таблицы, и изображение показано ниже enter image description here

Теперь я хочу добавить все столбцы и хочу, чтобы они отображались в одном столбце. Но не получаю. Запрос указан ниже

SELECT 'CFS to Zero' Location, sum( [0]+[1]+[2]+[3])  FROM                         
(SELECT  [ContainerCount],Time FROM #tt )as Tab1                        
PIVOT                        
(                        
MAX([ContainerCount]) FOR Time IN ([0])) AS Tab2 ;

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Если вам нужна только 1 СУММА, вам не нужен PIVOT.

Просто агрегируйте и получите значения MAX, а затем СУММИТЕ их.

Это дает то преимущество, что вы можете просто использовать МЕЖДУ, чтобы выбрать только диапазон времени.
Вместо того, чтобы жестко кодировать значения времени в PIVOT.

SELECT 
 'CFS to Zero' AS Location, 
 SUM(MaxContainerCount) AS TotalMaxContainerCount
FROM
(
  SELECT 
   [Time], 
   MAX(ContainerCount) AS MaxContainerCount
  FROM #tt
  WHERE [Time] BETWEEN 0 AND 3
  GROUP BY [Time]
) q
0 голосов
/ 19 марта 2019

использование coalesce()

SELECT 'CFS to Zero' Location, coalesce([0],0)+coalesce([1],0)+coalesce([2],0)+coalesce([3],0)  FROM                         
(SELECT  [ContainerCount],Time FROM #tt )as Tab1                        
PIVOT                        
(                        
MAX([ContainerCount]) FOR Time IN ([0],[1],[2],[3])) AS Tab2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...