Foxtable(狐表)用户栏目专家坐堂 → 求用SQL代码生成统计表


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

主题:求用SQL代码生成统计表

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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/11/15 21:55:00 [只看该作者]

以下是引用lin_hailun在2012-11-14 15:34:00的发言:
 截取银行的统计,但代价不是一般的大,楼主,三思哦。

select 科目名称, sum(金额) as 金额 from
(select
iif(Instr(科目名称, '\') = 0, left(科目名称, len(科目名称)), iif(InStr(Right(科目名称, cint(Len(科目名称) - Instr(科目名称, '\'))), '\') = 0,
left(科目名称, len(科目名称)), left(科目名称, cint(Instr(科目名称, '\') + InStr(Right(科目名称, cint(Len(科目名称) - Instr(科目名称, '\'))), '\') - 1)))) As 科目名称, 金额
from {表A})
group by 科目名称

用SQL作为外部数据源,用下列代码,提示有错误。

select 科目名称, sum(金额) as 金额 from
(select
Case when CharIndex(科目名称, '\') = 0 then left(科目名称, len(科目名称)) else case when CharIndex(Right(科目名称, Ceiling(Len(科目名称) - CharIndex(科目名称, '\'))), '\') = 0 then left(科目名称, len(科目名称)) else left(科目名称, Ceiling(CharIndex(科目名称, '\') + CharIndex(Right(科目名称, Ceiling(Len(科目名称) - CharIndex(科目名称, '\'))), '\') - 1)) end end As 科目名称, 金额
from {表A})
group by 科目名称


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/15 22:22:00 [只看该作者]

 charIndex,你的参数颠倒了。

select 科目名称, sum(金额) as 金额 from
(select
Case when CharIndex('\', 科目名称) = 0 then left(科目名称, len(科目名称)) else case when CharIndex('\',Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) = 0 then left(科目名称, len(科目名称)) else left(科目名称, Ceiling(CharIndex('\', 科目名称) + CharIndex('\', Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) - 1)) end end As 科目名称, 金额
from {表A}) as t
group by 科目名称

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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/11/15 22:28:00 [只看该作者]

以下是引用lin_hailun在2012-11-15 22:22:00的发言:
 charIndex,你的参数颠倒了。

select 科目名称, sum(金额) as 金额 from
(select
Case when CharIndex('\', 科目名称) = 0 then left(科目名称, len(科目名称)) else case when CharIndex('\',Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) = 0 then left(科目名称, len(科目名称)) else left(科目名称, Ceiling(CharIndex('\', 科目名称) + CharIndex('\', Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) - 1)) end end As 科目名称, 金额
from {表A}) as t
group by 科目名称

谢谢。


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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/11/15 22:46:00 [只看该作者]

内容变了,再传附件,如何生成表C,先谢了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目汇总.table


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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/11/15 22:50:00 [只看该作者]

说明,是对各个公司的求和。

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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/11/15 22:54:00 [只看该作者]

select 公司名称,科目名称, sum(金额) as 金额 from
(select 公司名称,
Case when CharIndex('\', 科目名称) = 0 then left(科目名称, len(科目名称)) else case when CharIndex('\',Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) = 0 then left(科目名称, len(科目名称)) else left(科目名称, Ceiling(CharIndex('\', 科目名称) + CharIndex('\', Right(科目名称, Ceiling(Len(科目名称) - CharIndex('\', 科目名称)))) - 1)) end end As 科目名称, 金额
from {表A}) as t
group by 公司名称,科目名称

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/16 0:25:00 [只看该作者]

 不会了……楼主努力啊。

 回到顶部
总数 27 上一页 1 2 3