我有一个包含3列的表格。我在其中显示ContainerCount随时间变化的及时报告。 下图显示了实际表格
现在我要添加所有列,并希望在单个列中显示。但没有得到。该查询在下面提到
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 ;
答案 0 :(得分:0)
使用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
答案 1 :(得分:0)
如果您只需要1个SUM,那么您实际上就不需要PIVOT。
只需汇总并获得MAX值,然后将它们求和即可。
这样做的好处是您可以使用BETWEEN仅选择一个时间范围。
无需在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