SQL sever 2008怎样查询得到下面格式的结果

elmolee321 2017-10-25 02:48:30
分类 1月 2月 3月 4月 5月 6月 7月 8月 9月
A 0 0 0 0 0 0 0 0 0
B 0 0 0 0 0 0 0 0 0
C 4 1 2 2 0 2 1 0 2

积分合计 4 1 2 2 0 2 1 0 2
销售收入 1994.18 1881.71 2913.89 1914.69 1413.83 1870.12 956.93 1808.47 3524.16
积分率 0.20% 0.05% 0.07% 0.10% 0.00% 0.11% 0.10% 0.00% 0.06%
16年平均积分率 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12%
积分率变化比例 67.15% -55.71% -42.80% -12.95% -100.00% -10.88% -12.92% -100.00% -52.71%

我已经用case when 和union all 将红色部分显示出来,但是就缺有文字说明的第一列,求大神指导,怎样才能做出 这种格式来
...全文
363 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2017-11-06
  • 打赏
  • 举报
回复
引用 5 楼 elmolee321 的回复:
[quote=引用 3 楼 qq_37170555 的回复:] [quote=引用 1 楼 elmolee321 的回复:]
select SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表 
代码是这样写的

select '积分率',SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select 分类,SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表
GROUP BY 分类	--也就是你ABC对应的字段名称
你是说这个意思吗?[/quote] 是的,是的。就是那个第一列没有名字,太谢谢了[/quote] 为什么是0分?
elmolee321 2017-11-06
  • 打赏
  • 举报
回复
引用 3 楼 qq_37170555 的回复:
[quote=引用 1 楼 elmolee321 的回复:]
select SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表 
代码是这样写的

select '积分率',SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select 分类,SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表
GROUP BY 分类	--也就是你ABC对应的字段名称
你是说这个意思吗?[/quote] 是的,是的。就是那个第一列没有名字,太谢谢了
shuifeng79 2017-10-27
  • 打赏
  • 举报
回复
好问题,学习了
听雨停了 2017-10-25
  • 打赏
  • 举报
回复
引用 1 楼 elmolee321 的回复:
select SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表 
代码是这样写的

select '积分率',SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select 分类,SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表
GROUP BY 分类	--也就是你ABC对应的字段名称
你是说这个意思吗?
OwenZeng_DBA 2017-10-25
  • 打赏
  • 举报
回复
引用 1 楼 elmolee321 的回复:
select SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表 
代码是这样写的
没有看明白,除了第一列,第一行,第三行,第四行都还没有吧
elmolee321 2017-10-25
  • 打赏
  • 举报
回复
select SUM(case 月 when  '1' then 积分率 else 0 end) [1月]
,sum(case 月 when  '2' then 积分率 else 0 end) [2月]
,sum(case 月 when  '3' then 积分率 else 0 end) [3月]
,sum(case 月 when  '4' then 积分率 else 0 end) [4月]
,sum(case 月 when  '5' then 积分率 else 0 end) [5月]
,sum(case 月 when  '6' then 积分率 else 0 end) [6月]
,sum(case 月 when  '7' then 积分率 else 0 end) [7月]
,sum(case 月 when  '8' then 积分率 else 0 end) [8月]
,sum(case 月 when  '9' then 积分率 else 0 end) [9月]
,sum(case 月 when  '10' then 积分率 else 0 end) [10月]
,sum(case 月 when  '11' then 积分率 else 0 end) [11月]
,sum(case 月 when  '12' then 积分率 else 0 end) [12月]
from View_客诉积分计算
union all
select SUM(case month(date) when  '1' then 1 else 0 end) [1月]
,sum(case month(date) when  '2' then 1 else 0 end) [2月]
,sum(case month(date) when  '3' then 1 else 0 end) [3月]
,sum(case month(date) when  '4' then 1 else 0 end) [4月]
,sum(case month(date) when  '5' then 1 else 0 end) [5月]
,sum(case month(date) when  '6' then 1 else 0 end) [6月]
,sum(case month(date) when  '7' then 1 else 0 end) [7月]
,sum(case month(date) when  '8' then 1 else 0 end) [8月]
,sum(case month(date) when  '9' then 1 else 0 end) [9月]
,sum(case month(date) when  '10' then 1 else 0 end) [10月]
,sum(case month(date) when  '11' then 1 else 0 end) [11月]
,sum(case month(date) when  '12' then 1 else 0 end) [12月] 
from 客户投诉表 
代码是这样写的

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧