根据特定值组合多行

时间:2014-09-01 23:36:18

标签: sql-server sql-server-2008-r2 coding-style ssms

我正在运行查询,结果显示下表

http://i.imgur.com/98u4ofl.jpg

关于此输出,我想知道最简单的方法是做什么: 1)将每个季度的行分组,其中真正的小百分比加起来为Misc。然后删除从表中分组的行 2)连接orgType和terrName列以获得一列

我正在考虑创建另一个临时表的路径并将数据插入到这些行中,直到达到特定的总和,然后只插入Misc。除了差异,但我认为这个解决方案很混乱,可能会出错。

1 个答案:

答案 0 :(得分:0)

答案比我想象的容易得多; K.I.S.S将适用于此。

正在输出的初始表结构如下:

CREATE TABLE #terrDivision
(
    RowID INT IDENTITY(1,1),
    quartNYear nvarchar (14),
    orgType nvarchar(30),
    terrName nvarchar(1024),
    IncidsInTerr INT,
    percentOfTotal FLOAT
)

将percentOfTotal<分组1我用过这个

SELECT MAX(RowId) AS RowId, quartNYear, orgType, CASE WHEN percentOfTotal < 1.0 THEN 'Misc.' ELSE terrName END AS TerrName,
              SUM(IncidsInTerr) AS IncidsInTerr, SUM(percentOfTotal) AS PercentOfTotal
FROM   #terrDivision 
GROUP BY quartNYear, orgType, CASE WHEN percentOfTotal < 1.0 THEN 'Misc.' ELSE terrName END
ORDER BY quartNYear, orgType, CASE WHEN percentOfTotal < 1.0 THEN 'Misc.' ELSE terrName END