我的数据看起来像这样
Value | Type
----- | ------
100 | Travel
200 | G&A
100 | OH
300 | Travel
我想这样总结一下:
TotalValue | Type
---------- | ------
400 | Travel
300 | Non-Travel
我写了一个这样的查询:
SELECT
SUM([Value]) as 'TotalValue',
CASE [Type] WHEN 'Travel' THEN [Type] ELSE 'Non-Travel' END AS 'Type'
FROM
#tableName
GROUP BY
[Type]
然而结果就是这样:
TotalValue | Type
---------- | ------
400 | Travel
200 | Non-Travel
100 | Non-Travel
我该如何解决这个问题?在此先感谢您的帮助!
答案 0 :(得分:3)
使用select
group by
中正在使用的表达式:
SELECT
SUM([Value]) as TotalValue,
CASE [Type] WHEN 'Travel' THEN [Type] ELSE 'Non-Travel' END AS Type
FROM
#tableName
GROUP BY
CASE [Type] WHEN 'Travel' THEN [Type] ELSE 'Non-Travel' END
rextester演示:http://rextester.com/YRN27346
返回:
+------------+------------+
| TotalValue | Type |
+------------+------------+
| 300 | Non-Travel |
| 400 | Travel |
+------------+------------+
注意:您不应该在别名名称周围使用单引号,即字符串文字。如果您的别名与Database Identifiers 的规则冲突,则将它们包装在方括号中。