2015-01-15 47 views
-1

enter image description here请查找附加的表格,我试图生成。查询的输出返回“现有表”中指定的数据。我正在试图生成所需的表中的表。到目前为止,不会有任何成功。正如您在图中看到的那样,该列会被添加到每个州和城市。SQL查询到每个类别的总和列

任何想法如何做到这一点?我正在使用SQL Server 2008 R2。

欣赏帮助。

+4

我想你忘了附上的表格,采样数据,预期的结果,查询等 – Taryn 2015-01-15 16:07:58

+0

谢谢你通知我。我只是用表格图像更新了这篇文章。 – bp581 2015-01-15 16:23:21

+1

在SQL Server @ bp581中使用** ROLLUP **函数 – 2015-01-15 16:44:58

回答

1

可以使用SUM聚合函数与OVER子句中http://msdn.microsoft.com/en-us/library/ms187810(v=sql.105).aspx

描述按上述页面,下面的代码应与您的询问兼容:

SELECT 
    [State], 
    City, 
    Item, 
    Cost, 
    Tax, 
    SUM(Cost) OVER (PARTITION BY [State], City) AS CumulativeCost, 
    SUM(Tax) OVER (PARTITION BY [State], City) AS CumulativeTax 
FROM -- Replace the below with your table 
(
    SELECT 'A' AS [State], 'AC' AS [City], 'Item1' AS [Item], 10 AS [Cost], 1 AS Tax UNION 
    SELECT 'A' AS [State], 'AC' AS [City], 'Item2' AS [Item], 30 AS [Cost], 2 AS Tax UNION 
    SELECT 'B' AS [State], 'BC' AS [City], 'Item1' AS [Item], 40 AS [Cost], 1 AS Tax UNION 
    SELECT 'B' AS [State], 'BC' AS [City], 'Item2' AS [Item], 10 AS [Cost], 1 AS Tax 
) t