Excel精英培训网

 找回密码
 注册
查看: 5659|回复: 9

数据透视表中级班练习七

[复制链接]
发表于 2014-5-26 09:42 | 显示全部楼层 |阅读模式
本帖最后由 JLxiangwei 于 2014-9-16 14:59 编辑

数据透视表中级班练习七.rar (68.87 KB, 下载次数: 126)
发表于 2014-5-27 22:33 | 显示全部楼层
左连接到死。。。。有空再想其他办法
  1. select 单位名称,服务人员,分类,贷方余额,贷方余额-iif(isnull(上日),0,上日) as 较上日,贷方余额-iif(isnull(上月),0,上月) as 较上月,贷方余额-iif(isnull(上年),0,上年) as 较上年 from (select t7.*,t8.上年 from (select t5.*,t6.上月 from (select t3.*,t4.上日 from (select t1.* ,iif(isnull(t2.贷方余额),0,t2.贷方余额) as 贷方余额 from (select c.*,d.服务人员 from (select a.单位名称,b.分类 from (select 单位名称,项目号 from[库$] group by 单位名称,项目号 having sum(贷方余额)>0)a left join [表2$]b on a.项目号=b.项目号)c left join [表1$]d on c.单位名称=d.单位名称)t1 left join (select 单位名称,sum(贷方余额) as 贷方余额 from [库$] where 日期=#2014/4/25# group by 单位名称)t2 on t1.单位名称=t2.单位名称)t3 left join (select 单位名称,sum(贷方余额) as 上日 from [库$] where 日期=#2014/4/24# group by 单位名称)t4 on t3.单位名称=t4.单位名称)t5 left join (select 单位名称,sum(贷方余额) as 上月 from [库$] where 日期=#2014/3/31# group by 单位名称)t6 on t5.单位名称=t6.单位名称)t7 left join (select 单位名称,sum(贷方余额) as 上年 from [库$] where 日期=#2013/12/31# group by 单位名称)t8 on t7.单位名称=t8.单位名称)
复制代码
回复

使用道具 举报

发表于 2014-5-28 17:11 | 显示全部楼层
本帖最后由 天空的雨 于 2014-6-1 16:17 编辑

答:
select 单位名称,服务人员,分类,sum(贷方余额) as 货方余额,sum(较上日) as 较上日,sum(较上月) as 较上月,sum(较去年) as 较去年
from(select a.单位名称,服务人员,分类,h.贷方余额,((0 & h.贷方余额)-(0 & b.贷方余额)) as 较上日,((0 & h.贷方余额)-(0 & c.贷方余额)) as 较上月,((0 & h.贷方余额)-(0 & d.贷方余额)) as 较去年
  from (((((
    (select DISTINCT 单位名称,编号,网号,项目号,账号 from[库$])a
    left join (select 单位名称,账号,编号,网号,贷方余额 from[库$]where 日期=#2014-4-25#)h  
                   on a.单位名称= h.单位名称 and a.账号 = h.账号 and a.编号= h.编号 and a.网号= h.网号)
   left join (select 单位名称,账号,编号,网号,贷方余额 from[库$]where 日期=#2014-4-24#)b
                  on a.单位名称= b.单位名称 and a.账号 =b.账号 and a.账号 = b.账号 and a.编号= b.编号 and a.网号= b.网号)
   left join (select 单位名称,账号,网号,编号,贷方余额 from[库$]where 日期=#2014-3-31#)c  
                 on a.单位名称= c.单位名称 and a.账号 =c.账号 and a.网号 = c.网号 and a.编号= c.编号)
   left join (select 单位名称,账号,网号,编号,贷方余额 from[库$]where 日期=#2013-12-31#)d
                on a.单位名称= d.单位名称 and a.账号 =d.账号  and a.编号= d.编号 and a.网号= d.网号)
  left join (select 单位名称,服务人员 from[表1$])f
                 on a.单位名称=f.单位名称)
   left join (select 项目号,分类 from[表2$])g
              on a.项目号= g.项目号)
where (贷方余额<>0) or (较上日<>0)  or (较上月<>0)  or (较去年<>0)
group by 单位名称,服务人员,分类

思路:通过去重得到表a与各所需日期的分表左连接,然后分组求和。这里有用到0连接空字符,否则会有的不计算。



回复

使用道具 举报

发表于 2014-5-29 16:43 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表于 2014-6-24 17:34 | 显示全部楼层

交作业来了

个人感觉这里有两个陷阱:
1.表[库$]必须left join [表1$],否则显示不出有单位名称但是没有服务人员的数据
2.同一个单位4个时间点贷方余额之和为零的要剔除,否则就有500多行数据...
  1. select a.单位名称,b.分类,c.服务人员,
  2. sum(iif(日期=#2014-4-25#,a.贷方余额,)) as 贷方余额,
  3. (sum(iif(日期=#2014-4-25#,a.贷方余额,))-sum(iif(日期=#2014-4-24#,a.贷方余额,))) as 较上日,
  4. (sum(iif(日期=#2014-4-25#,a.贷方余额,))-sum(iif(日期=#2014-3-31#,a.贷方余额,))) as 较上月,
  5. (sum(iif(日期=#2014-4-25#,a.贷方余额,))-sum(iif(日期=#2013-12-31#,a.贷方余额,))) as 较上年
  6. from [表2$] b,(select * from [库$] a left join [表1$] c on a.单位名称=c.单位名称)
  7. where a.项目号=b.项目号  
  8. group by a.单位名称,b.分类,c.服务人员
  9. having sum(a.贷方余额)>0
复制代码
回复

使用道具 举报

发表于 2014-7-15 15:26 | 显示全部楼层
  1. SELECT DISTINCT T6.单位名称,服务人员,分类,T6.贷方余额,较上日,较上月,较上年 FROM((((SELECT T1.单位名称,贷方余额,贷方余额-IIF(上日<>0,上日,0) AS 较上日,贷方余额-IIF(上月<>0,上月,0) AS 较上月,贷方余额-IIF(上年<>0,上年,0) AS 较上年 FROM(SELECT T1.单位名称,T2.期末余额 AS 贷方余额,上日,上月,上年 FROM(((((select 单位名称 from [库$] where 贷方余额>0 group by 单位名称)T1 LEFT JOIN (SELECT 单位名称,日期,IIF(SUM(贷方余额)<>0,SUM(贷方余额),0) AS 期末余额 FROM [库$] WHERE 日期=#2014-4-25#  GROUP BY 单位名称,日期)T2 ON T1.单位名称=T2.单位名称) LEFT JOIN (SELECT 单位名称,日期,SUM(贷方余额) AS 上日 FROM [库$] WHERE 日期=#2014-4-24#  GROUP BY 单位名称,日期)T3 ON T1.单位名称=T3.单位名称) LEFT JOIN (SELECT 单位名称,日期,SUM(贷方余额) AS 上月 FROM [库$] WHERE 日期=#2014-3-31#  GROUP BY 单位名称,日期)T4 ON T1.单位名称=T4.单位名称)  LEFT JOIN (SELECT 单位名称,日期,SUM(贷方余额) AS 上年 FROM [库$] WHERE 日期=#2013-12-31#  GROUP BY 单位名称,日期)T5 ON T1.单位名称=T5.单位名称)))T6 LEFT JOIN [库$]T7 ON T6.单位名称=T7.单位名称) LEFT JOIN [表2$]T8 ON T7.项目号=T8.项目号) LEFT JOIN [表1$]T9 ON T6.单位名称=T9.单位名称)
复制代码
回复

使用道具 举报

发表于 2014-9-16 19:43 | 显示全部楼层
1111111111111111
回复

使用道具 举报

发表于 2015-3-9 12:05 | 显示全部楼层
挺有意思的啊                 
回复

使用道具 举报

发表于 2017-3-29 10:56 | 显示全部楼层

回复

使用道具 举报

发表于 2020-1-20 15:54 | 显示全部楼层
都是高手,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 16:22 , Processed in 0.505903 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表