多表 联合 统计 查询

bigbryce 2012-01-10 10:43:53
现有两张表:TS_ACCOUNT(主要字段:accounttype,orgid) SYS_AGENCY(主要字段:id,orglevelcode,orglevel) 其中orgid 关联 sys_agency的id
orglevelcode为单位编号,每级由5位构成,子级是在父级的基础上加5位,orglevel是单位级数
现在要做统计查询:查出2级单位包含的 1、子单位数 2、每个2级单位包含的每一种账户类型的数量
大概结果如下:
单位编号 单位名称 机构数(含本级) 一般业务收入户 代理业务收入户 费用支出户 业务支出户 投资金归集户 投资金满期给付账户 外币账户 专项户 合计 平均常规账户数量 平均账户数量

... 安徽省分公司 20 20 20 20 20 20 20 0 0 120 4 6
... 浙江省分公司 10 10 10 10 10 10 10 0 0 60 4 6

我在网上看了半天,还是没有思路,请各位老马指点一下思路,3Q
...全文
68 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-01-10
  • 打赏
  • 举报
回复
你这个需求,想直接一个SQL搞定,不知道你数据表记录数有多少,如果有个千把来万行以上,估计数据库当场跑成SB了。一般来说,需要用存储过程晚上定期跑,把加工过一次的数据存入另一张表,查询直接查加工后的。

而且你最后显示的时候还期望把列向数据转为横向数据,也就是你的accounttype的取值了

GroupBy 的字段要做截取,比如 Group By substr(orglevel, 5)


Select 机构名称,业务分类,数量,钱 From (
Select substr(orglevel, 5), accounttype, count(1), sum(钱)
From 表连接略
Group By substr(orglevel, 5), accounttype
) 连接另一张表翻译机构名称和业务分类

至于纵向数据转为横向数据,俺就不管了,等其它专业人士告诉你吧


23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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