SQL组计算每个部分并显示记录

时间:2015-08-12 10:25:05

标签: sql sql-server

我正在寻找一些关于如何将结果分组到两个项目(站点和资产)以及显示所有记录的结果的指针。表结构非常简单。

表格

[Sites] ID | SiteName
[SiteAssets] ID | SiteID | AssetName
[SiteAssetCosts] ID | SiteAssetID | CostName | Value
  

我希望返回一个带有一个SQL语句的表,该语句显示:

SiteName1  | SUM(SiteAssetCost.Value)
AssetName1 | SUM(SiteAssetCost.Value)
CostName1  | [SiteAssetCost.Value]
CostName2  | [SiteAssetCost.Value]
CostName3  | [SiteAssetCost.Value]

AssetName2 | SUM(SiteAssetCost.Value)
CostName1  | [SiteAssetCost.Value]
CostName2  | [SiteAssetCost.Value]

SiteName2  | SUM(SiteAssetCost.Value)
AssetName1 | SUM(SiteAssetCost.Value)
CostName1  | [SiteAssetCost.Value]
CostName2  | [SiteAssetCost.Value]

等等...

1 个答案:

答案 0 :(得分:3)

看看这是否符合您的要求:

select s.sitename, sa.assetname, sac.costname, sum(value) as value
from siteassetcosts sac join
     siteassets sa
     on sac.siteassetid = sa.id join
     sites s
     on sa.siteid = s.id
group by s.sitename, sa.assetname, sac.costname with rollup;