2014-09-01 84 views
-2

结合多行我运行一个查询和我下面的表中获取结果根据特定值

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

对此输出我想知道什么是做以下最简单的方法: 1)将每个季度的行分组,加上百分之百的小百分比作为杂项。然后删除从表中分组的行 2)连接orgType和terrName列以获得一列

我正在考虑创建另一个临时表并将数据插入这些行的路由,直到特定总和达成,然后插入杂项。随着差异,但我认为这个解决方案是混乱的,可能会容易出错。

+0

组如果你downvote这个请大家发表意见,为什么让我能从我的错误中学习。 – UbiNoob 2014-09-01 23:53:39

+0

我没有倒下你。以下是一些需要注意的事项 - 给出示例表格和行,您尝试使用的代码,预期的和实际的输出,您遇到的错误等。如果没有这些,通常不可能帮助任何人。它很明显,但很多人不这样做。 – 2014-09-02 00:50:49

回答

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