使用汇总后命名一行

时间:2016-09-22 10:54:51

标签: sql sql-server sql-server-2012

使用'汇总'我遇到了一个问题,就是有两行被称为“Total'”。底部'总计'应该被称为“不适用”。

  Name        Col1     Col2
  Total        10       12
    A           5        2
    B           4        4
    C           0        4    
  Total         1        2

应该是这样的

   Name        Col1     Col2
   Total        10       12
    A           5        2
    B           4        4
    C           0        4    
    N/A         1        2

这是我查询中我做错事的一部分

   select

   case Name when 'N/A' then 'Total' else Name end as Name     
   ,col1
   ,col2

   from 

   (  

    case NameID when '1' then 'A'
                when '2' then 'B'
                when '3' then 'C'
                else 'N/A'
    end as Name
    ,col1  --these are sums
    ,col2  --these are sums

     from table
     group by NameID with rollup 

     )a

如果我对此位进行更改

   case NameID when '1' then 'A'
                when '2' then 'B'
                when '3' then 'C'
                else 'help'
    end as Name 

结果是这个

       Name        Col1     Col2
       help        10       12
       A           5        2
       B           4        4
       C           0        4    
       help        1        2

所有帮助非常感谢,谢谢

1 个答案:

答案 0 :(得分:0)

你的NAMEs中有一个是Total,所以为什么不交换它们。似乎是你想要的。

case 
  when NAME =  'N/A' then 'Total' 
  when NAME = 'Total' then 'N/A'
  else Name 
end as Name