Foxtable(狐表)用户栏目专家坐堂 → 类似于截图这样的统计怎么做?


  共有5856人关注过本帖树形打印复制链接

主题:类似于截图这样的统计怎么做?

帅哥哟,离线,有人找我吗?
逛逛
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/8/19 10:49:00 [显示全部帖子]

我也想知道。

我现在只会逐项汇总,合并单元格。


 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/8/19 17:47:00 [显示全部帖子]

通过建立中间查询方式,不知是否可以。我用MSSQL

如能用存储过程,效果会更好

 

前提,你查询能得到下表

 

 

   
统计项目 项目        年份    月份     人数     金额
东阳山 一分厂 2013 1 5 200
峰山 一分厂 2013 1 5 500

查询1

CREATE VIEW dbo.VIEW2
AS
SELECT  统计项目, 项目, '金额(元)' AS 统计类别, 2  as  大序号  ,2 as 小序号,
      CASE 月份 WHEN 1 THEN 金额 ELSE 0 END AS [1月],
      CASE 月份 WHEN 2 THEN 金额 ELSE 0 END AS [2月],
      CASE 月份 WHEN 3 THEN 金额 ELSE 0 END AS [3月],
      CASE 月份 WHEN 4 THEN 金额 ELSE 0 END AS [4月],
      CASE 月份 WHEN 5 THEN 金额 ELSE 0 END AS [5月],
      CASE 月份 WHEN 6 THEN 金额 ELSE 0 END AS [6月],
      CASE 月份 WHEN 7 THEN 金额 ELSE 0 END AS [7月],
      CASE 月份 WHEN 8 THEN 金额 ELSE 0 END AS [8月],
      CASE 月份 WHEN 9 THEN 金额 ELSE 0 END AS [9月],
      CASE 月份 WHEN 10 THEN 金额 ELSE 0 END AS [10月],
      CASE 月份 WHEN 11 THEN 金额 ELSE 0 END AS [11月],
      CASE 月份 WHEN 12 THEN 金额 ELSE 0 END AS [12月]
FROM dbo.Table1
WHERE (年份 = 2013)

union
SELECT  统计项目, 项目, '人数' AS 统计类别, 2,1,
      CASE 月份 WHEN 1 THEN 人数 ELSE 0 END AS [1月],
      CASE 月份 WHEN 2 THEN 人数 ELSE 0 END AS [2月],
      CASE 月份 WHEN 3 THEN 人数 ELSE 0 END AS [3月],
      CASE 月份 WHEN 4 THEN 人数 ELSE 0 END AS [4月],
      CASE 月份 WHEN 5 THEN 人数 ELSE 0 END AS [5月],
      CASE 月份 WHEN 6 THEN 人数 ELSE 0 END AS [6月],
      CASE 月份 WHEN 7 THEN 人数 ELSE 0 END AS [7月],
      CASE 月份 WHEN 8 THEN 人数 ELSE 0 END AS [8月],
      CASE 月份 WHEN 9 THEN 人数 ELSE 0 END AS [9月],
      CASE 月份 WHEN 10 THEN 人数 ELSE 0 END AS [10月],
      CASE 月份 WHEN 11 THEN 人数 ELSE 0 END AS [11月],
      CASE 月份 WHEN 12 THEN 人数 ELSE 0 END AS [12月]
FROM dbo.Table1
WHERE (年份 = 2013)
union
SELECT '合计', 项目,'人数' AS 统计类别,  2,1,
 SUM(CASE 月份 WHEN 1 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 2 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 3 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 4 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 5 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 6 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 7 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 8 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 9 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 10 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 11 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 12 THEN 人数 ELSE 0 END)
FROM dbo.Table1
WHERE (年份 = 2013)
GROUP BY  项目

union
SELECT '合计', 项目,'金额(元)'  ,  2,2,
 SUM(CASE 月份 WHEN 1 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 2 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 3 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 4 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 5 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 6 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 7 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 8 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 9 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 10 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 11 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 12 THEN 金额 ELSE 0 END)
FROM dbo.Table1
WHERE (年份 = 2013)
GROUP BY  项目
union
SELECT '合计', '总计','人数' ,  5,1,
 SUM(CASE 月份 WHEN 1 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 2 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 3 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 4 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 5 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 6 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 7 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 8 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 9 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 10 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 11 THEN 人数 ELSE 0 END),
 SUM(CASE 月份 WHEN 12 THEN 人数 ELSE 0 END)
FROM dbo.Table1
WHERE (年份 = 2013)


union
SELECT '合计', '总计','金额(元)'  ,  5,2,
 SUM(CASE 月份 WHEN 1 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 2 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 3 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 4 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 5 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 6 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 7 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 8 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 9 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 10 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 11 THEN 金额 ELSE 0 END),
 SUM(CASE 月份 WHEN 12 THEN 金额 ELSE 0 END)
FROM dbo.Table1
WHERE (年份 = 2013)

 

 

查询2

CREATE VIEW dbo.VIEW3
AS
SELECT TOP 100 PERCENT 统计项目 AS Expr1, 项目 AS Expr2, 统计类别 AS Expr3,
      MAX([1月]) AS Expr4, MAX([2月]) AS Expr5, MAX([3月]) AS Expr6, MAX([4月]) AS Expr7,
      MAX([5月]) AS Expr8, MIN([6月]) AS Expr9, MAX([7月]) AS Expr10, MAX([8月])
      AS Expr11, MAX([9月]) AS Expr12, MAX([10月]) AS Expr13, MAX([11月]) AS Expr14,
      MAX([12月]) AS Expr15, MAX(大序号) AS Expr16, MAX(小序号) AS Expr17
FROM dbo.VIEW2
GROUP BY 统计项目, 统计类别, 项目
ORDER BY MAX(大序号), 项目 DESC, 统计项目, MAX(小序号)

 

 

 


 回到顶部